Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: adrusi on May 21, 2013, 10:44:47 pm

Title: Axe Sprite Editor
Post by: adrusi on May 21, 2013, 10:44:47 pm
I saw this topic from a while back:

Ok, I have been trying out runer's sprite editor recently, which stored all sprites into an appvar which I couldn't decode (even with runer's help).
Even though I heard runer has been working on a new sprite editor, I decided to write my own.
This sprite editor stored the sprites directly into Pic5/Pic6 (frontbuffer/backbuffer respectively).
(It is your task to copy them to other pics/datafiles if you want)
It only supports 4lv grayscale.
I am not planning to support 3lv grayscale, nor any other features as this program is mainly meant for helping me completing zelda, I just decided to share it.
Controls:
Arrows - Move the cursor
F1 - Black
F2 - Darkgray
F3 - Lightgray
F4 - White
- - Go to the last sprite
+ - Go to the next sprite
Clear - Leave the program

Do not compile this program as an app, as it uses SMC.

Credits:
Me - Programming this app
Runer112 for the idea in the first place and help on how the Pic files are structured.

Bugs:
-It responds too fast
-You need to have Pic5 and Pic6 in the ram.

*I do not take any responsibility for any crashes/data losses caused by this program*
Don't let that spoil it tho, its a simple program allowing you to create 4lv grayscale sprites.

I thought the tool could be useful, but I found it almost unusable because it responded to key input too quickly.

I hacked together a solution to that problem for my own use, but I figured there's no reason I shouldn't share it with you guys.

As a bonus, I also increased to quality of the grayscale, retrofitting interrupts onto the old code (kind of ugly in one place, but it works).

All credit to Ikkerens, who wrote the actual program.

https://mega.co.nz/#!0wwXWbbY!fWFCr37nytZlUhKFimtGWA8obbdcbr-dEetMzZQGpyM
 (https://mega.co.nz/#!0wwXWbbY!fWFCr37nytZlUhKFimtGWA8obbdcbr-dEetMzZQGpyM)

PS: I'm mostly a lurker on omnimaga and I can't figure out how to add attachments. Do I need a certain number of posts before I earn the right or what?
Title: Re: Axe Sprite Editor
Post by: shmibs on May 21, 2013, 10:51:18 pm
yeah, we have a post limit to avoid people spamming things. you need to have at least 20 posts before you can add an attachment. i can't access mega with flash from my current location, but hopefully someone else can come along and attach it for you =)

also, it's nice to see people picking up and improving old things.
Title: Re: Axe Sprite Editor
Post by: Juju on May 21, 2013, 10:54:47 pm
but hopefully someone else can come along and attach it for you =)
There we go ^_^
Title: Re: Axe Sprite Editor
Post by: adrusi on May 25, 2013, 08:06:48 pm
Quick update which adds support for archived pictures.
Title: Re: Axe Sprite Editor
Post by: adrusi on June 04, 2013, 03:08:09 pm
Update:
Title: Re: Axe Sprite Editor
Post by: Sorunome on June 04, 2013, 03:11:03 pm
suggestion: make it auto-create the os pic vars on starting if they don't exist

other than that, nice update :D
Title: Re: Axe Sprite Editor
Post by: adrusi on June 04, 2013, 06:32:32 pm
suggestion: make it auto-create the os pic vars on starting if they don't exist

other than that, nice update :D

Fixed. Just for the hell of it, I also included a executable compiled for no shell.

I also made it a bit safer at the cost of long startup and exit times. It used to keep the OS picvars in RAM while the program was running, this of course makes ram clears during the program's execution a problem. Now it operates on a temporary buffer which is copied to and from archived picvars on startup and exit. Even with fast mem timings enabled, it can take upwards of 10 seconds (since if has to write to the archive).

Personally I think it's worth it. The primary intention for the tool is making sprites for games, and if you loose your game's sprites, it might just ruin your day.

Edit: the program prefixed with a theta is the Axe source, and the other one is the executable.