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 ... 37 38 [39] 40 41 ... 153
571
TI Z80 / Re: Pokémon Amber
« on: July 21, 2013, 03:13:09 pm »
The character sprite does actually have a walking animation, but it isn't very good and you can't easily see it.
Feel free to use those from Pokémon Monochrome if you want :)

That is the furthest along faithful rendition of the original Pokemon games that I think I have ever seen for the 83+/84+. Why am I only learning about it now!? Does this have it's own topic? Because it's very worthy of one.



Oh, and your version looks good to Xeda...
* Runer112 runs

But in all seriousness, I suspect your version will get a lot more awesome given time. For only having worked on it for about a week or two it seems, a lot of good progress has been made.

572
ASM / Re: Looking for a fast 3 bytes left rotation(axe friendly)
« on: July 19, 2013, 01:01:15 pm »
To rotate 3 bytes pointed to by hl one bit to the left, I think this is the fastest way it can be done:

13 bytes, 79 cycles
Axe: Asm(7E872323CB162BCB162BCE0077)
Source:
Code: [Select]
ld a,(hl)
add a,a
inc hl
inc hl
rl (hl)
dec hl
rl (hl)
dec hl
adc a,0
ld (hl),a

I assume you may want rotation to the right as well:

12 bytes, 80 cycles
Axe: Asm(7E1F23CB1E23CB1E2B2BCB1E)
Source:
Code: [Select]
ld a,(hl)
rra
inc hl
rr (hl)
inc hl
rr (hl)
dec hl
dec hl
rr (hl)


And for what it's worth, your code was already pretty close to mine in terms of speed; 102 cycles for yours versus 79/80 cycles for mine. :)

If you plan on using these code snippets a lot, it may be a good idea to put them in a subroutine and calling it each time you need it, which would save you 10/9 bytes, at the cost of 27 cycles, for each use.

573
TI Z80 / Re: IES: online Axe, BASIC, and Grammer editor
« on: July 12, 2013, 01:05:39 pm »
Maybe you could merge this one with BBify, so this also has a button to export BBCode or HTML? (Just a thought)

574
The Axe Parser Project / Re: Features Wishlist
« on: July 12, 2013, 12:57:50 pm »
A prefix version of ++ and -- that returns the in/decremented value instead of the previous one.

As of now, the ++ and -- operators don't actually have defined return values. Technically, any code that does currently use their return values is a hack, and would no longer work if ++ and -- were properly implemented. There are numerous programs that take advantage of the current implementation, and I don't want to break them, at least not for the moment.

I believe the main reason ++ and -- were never set up to properly return the new/old value exactly is for optimization reasons. If they were all fully implemented, VAR++ would be 1 byte larger, VARr++ and {EXPR}++ would be 4 bytes larger, and {EXPR}r++ would be 3 bytes larger. And it's not uncommon that the return value isn't actually needed, so those would be wasted bytes. It was kept in mind that programmers could use the "undefined" return values to get the real return values if they wanted them. For the first two cases, which I believe are the most common, it actually costs the programmer nothing to do this; the assembly implementations would be the same as VAR++-1 for the first and {VARr++}-1 and {{EXPR}++}-1 for the second (pre-increment would be the same as well, just without the -1's). It does get a little hairy with the two-byte pointed increment/decrement, though.

Don't get me wrong, I do eventually want real ++ and -- implementation. However, I would like to save it for when Axe has a more powerful optimizer and can intelligently see if the return value is actually used, and then decide whether to use the smaller undefined return value code or the larger defined return value code.


Can the fill( function be auto opted when the byte it should fill with is a predetermined constant?
And can it be optimised even further if the size is less than 256?
I think it would look like this:
0<size<256:
bytesize: 7
ld b,*
ld(hl),*
inc hl
djnz -5

size>=256
bytesize: 15
xor a
ld bc,**
ld(hl),*
inc hl
djnz -5
ld b,255
dec c
cp c
jr z,-11

and I think the current code has a size of 18 bytes.
I don't know if the code I gave is as optimised as it can be (nor have I tested it yet), but it is smaller.

Fill is absolutely a command I'd like to optimize, and I like your ideas. But on a note related to my response to Freyaday above, Axe's optimizer is unfortunately too simple at the moment to allow for such optimizations. It doesn't provide for any way to supply optimized versions of multiple-input functions for which some set of the inputs are constants.

When Axe gets a more powerful optimization engine, I certainly would like to see things like this added.





I think I'm seeing a theme here... x.x

575
The Axe Parser Project / Re: Axiom Requests
« on: July 12, 2013, 12:27:03 pm »
What would be the purpose of such a command? It's possible that I'm misunderstanding your request, but to me it sounds like you're asking for a command that doesn't attempt to create grayscale by combining the main and back buffer contents each frame, but instead only provides the grayscale "weighting" for each pixel by displaying the full main buffer twice for every time the full back buffer is displayed once. If this is what you're looking for, couldn't the affect be achieved in native Axe, like this?

Code: [Select]
DGInit()
...
DG()
...
Lbl DG
If C-1→C
DispGraph
Return
End
DispGraph(L₃)
Lbl DGInit
3→C
Return

576
CaDan SHMUP / Re: Cadan v2 - Progress Thread
« on: July 10, 2013, 09:06:58 pm »
I expect Cadan v2 to support the bullet patterns and quantities detailed in the attached gif.

* Runer112 runs

577
TI Z80 / Re: TI84+C Buttonz
« on: July 09, 2013, 06:10:44 pm »
I'd say it's perfectly reasonable for all programs and applications to expect that the LCD will be in the normal 320x240 mode the OS uses when they are launched. If a shell doesn't use these settings, it should be the shell's responsibility to restore the standard settings before running the program. So in my opinion, you shouldn't need to add code to enforce any LCD settings that are already default in the OS.

578
Computer Usage and Setup Help / Re: help renaming
« on: July 02, 2013, 01:10:58 am »
Where are the individual files located (in relation to each other)? If each one is called noob, they would have to be in different folders and I imagine that it isn't easy for multi-file renaming tools to handle files scattered across different folders.

EDIT: I did a quick web search. This article and this one seem to be fairly promising for finding an easy solution to your problem (if there is one).

579
Computer Usage and Setup Help / Re: help renaming
« on: July 02, 2013, 01:00:52 am »
On Windows, select  all of them, then  right click the first one and select "rename..." then enter the name you want the files to have. On Linux, download a program to do it for you.

Wow, I didn't even know you could do this. That's pretty neat. Of course you can't enter a custom pattern of how numbers get added, but I wouldn't expect that anyways except from a more specific tool meant to do things like this.

580
Axe / Re: [Tutorial] Optimize pixel-by-pixel drawing
« on: June 21, 2013, 02:33:59 pm »
Out of curiosity, could you post the source of that plasma program? I'd be interested to look at it, I like Axe programs that do manual graphics rendering. :)
















I'm certainly not asking because I want to try to optimize it to hell >.>

581
TI Z80 / Re: [Axe] Picraft 2
« on: June 20, 2013, 01:00:35 am »
You can always post the code and ask others for help with debugging it if you're having trouble doing so alone.

582
TI Z80 / Re: [Axe] Picraft 2
« on: June 20, 2013, 12:55:57 am »
I thought you had a scrolling tilemapper working? That should handle most of the general code and the movement. To place/remove tiles, just change the value of the tile byte in the tilemap that you want to replace. As for changing size (I assume you mean size of tiles), I wouldn't really even recommend doing so, at least until you fully understand how the tilemapping engine works and can write your own.

583
TI Z80 / Re: [Axe] Picraft 2
« on: June 20, 2013, 12:40:20 am »
I've gotten tilemapps to work, but they make future coding so much harder

I believe that the truth is actually quite the contrary. Tilemaps are used to make 2D game graphics easier and usually lend themselves to implementing actual gameplay aspects more easily as well.

What about tilemaps is holding you back? If you have specific questions, hopefully someone can help you through them.

584
TI Z80 / Re: [Axe] Picraft 2
« on: June 19, 2013, 01:03:01 am »
I believe the primary issue is that your phone produces mp4 files, not gif files. I'd save taking screenshots for when you have access to a computer and an emulator that is capable of gif recording.

585
The Axe Parser Project / Re: Features Wishlist
« on: June 18, 2013, 04:10:54 pm »
Tables, structures and other object oriented stuff would come in really handy. As of right now making the data structures for enemies, bullets etc. are pretty much hardcoded. If I want to add an extra variable to an object I'd have to change around a lot of code just to be able to do that. For my game HeroCore I simply forgot to increase the amount of bullets that can be drawn on screen and now I'm stuck with 6. If I want to increase it I have to increase 6 to x every time it occurs in the code.

Tables and structures are big asks. However, I completely agree that they would be very useful. I'll certainly be investigating the possibility of implementing such language features for the next major revision of Axe. But that may be (read: is) a long way off!

Pages: 1 ... 37 38 [39] 40 41 ... 153