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 - adrusi

Pages: [1]
1
WabbitStudio Software Suite / WabbitEmu Rom creation for Mac
« on: December 17, 2013, 09:06:33 pm »
I'm setting up WabbitEmu on mac and need to figure out how to create a rom image from an operating system file. The official documentation just suggests using the windows version to generation the image, but that's not going to work for me right now. I tried running the windows version with wine, but to no avail. I know I managed to do this once before, so it's possible, I just can't remember how. Help?

2
TI Z80 / [Planning] The Binding of Isaac
« on: June 04, 2013, 08:54:12 pm »
I'm planning on making a roguelike heavily inspired by The Binding Of Isaac.

There's going to be a lot fewer items, which will be mostly limited to stat upgrades. There will also be a lot fewer enemies, bosses, etc. There just isn't enough memory, and even if there were I'm not willing to implement anywhere near as many as the original game has.

I think I have a decent scheme for representing the map, where I can store each room in only 2 bytes. However, I'm not quite sure how to approach generating the map in a way that resembles the labyrinthine nature of the original game. Any suggestions?

Here's a picture of the interface as it currently stands.

Edit: This is for the z80 series calcs.

3
TI Z80 / Four-Level Grayscale Drawing program
« on: May 30, 2013, 05:09:52 pm »
I made a little 4-level grayscale picture editor. It operates on the OS vars Pic3 (back buffer) and Pic4 (main buffer), which can both be either in ram or archive.

It's nothing special, but it's (hopefully) the last little project I do before I make something a bit bigger and more unique. That said, it's a decent tool and might be nice if you want to doodle with something a bit more than the TIOS drawing tools.

Controls:
  • F1, F2, F3 and F4 set the color to draw with. F1 is black and F4 is white. White is the default, which can be confusing since it looks like it's not drawing anything at first. I probably should have initialized it to black, but I'm lazy.
  • 0 enters pixel mode, which sets the pixel under the cursor to the selected color when 2nd is held.
  • 1 enters line mode, which draws lines of the specified color. Hit 2nd to set the endpoints. Hit mode to cancel a started line.
  • 2 enters rectangle mode, which draws a filled rectangle. Hit 2nd to set the corners. Hit mode to cancel a started rectangle.
  • Hold alpha to speed up cursor movements, useful when moving to the opposite side of the screen or if there's lag caused by drawing large lines or rectangles.


4
TI Z80 / Spritesheet Viewer in Axe
« on: May 24, 2013, 01:26:34 pm »
After I modified Ikkerens's sprite creator/editor[1], I figured it would be nice to actually be able to view the sprites together rather than just one at a time.

This program lets you essentially create a rearranged spritesheet on the screen so that you can see how the individual sprites fit together.

When it redraws the entire screen, it's a bit slow. The redraw takes almost a full second on my 84+SE, however, it doesn't do full redraws often.

Interface:
There are no on-screen interface elements, since the entire screen is used for displaying sprites.
While F5 is down, it will display the original sprite sheet so that you can see how to navigate to the sprite you want. It redraws the screen when released.
While F4 is down, it will display only the currently selected sprite. This lets you know which sprite is selected. It redraws the screen when released.
Use the arrows to move the cursor. Every time the cursor moves, it simulates pressing F4, so the screen is redrawn.
+ and - will increment and decrement the x value of the sprite displayed in the selected square. This only redraws the relevant square.
* and / will do the same the the y value.

I've attached just the source, since it's mainly and axe utility anyway, so it's kind of useless on a device without axe.

Bugs (will be fixed):
  • cannot change the sprite associated with squares lower than the first row
  • cannot use sprites with an index in the spritesheet greater than 32
  • moving the cursor left when cursor_x = 0 sets cursor_x = 3
  • [1]
http://ourl.ca/18969#quickreply

5
TI Z80 / Axe Sprite Editor
« 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


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?

6
TI Z80 / FORTH implementation
« on: May 30, 2012, 09:54:53 pm »
I'm thinking of implementing a FORTH environment in Axe. I think FORTH is a great environment for old devices like the TI 8x models, even though they are on the upper end of what I would consider FORTH appropriate for.

I'm wondering if anyone else is interested in a dynamically compiled FORTH environment. The rest of this post is me rambling about specifics and somewhat less interesting stuff.

I have a system set up for dynamic compilation of words into actual machine code. It's not the prettiest, and it could be about 2 machine instructions per word (as in FORTH word) more efficient if I were willing to write it in assembly, but I think the way I have it is good enough efficiency-wise and also lets me write all but 3 lines in Axe.

I basically have an implementation of linked lists, except instead of a list it's a subroutine.

Code: [Select]
:lbl BCONS
:⋿CD→{r₁}
:r₂→{r₁+1}ʳ
:⋿CD→{r₁+3}
:r₃→{r₁+4}ʳ
:⋿C9→{r₁+6}
:Return

(the above code has unicode characters, if it doesn't display right for you I have a less pretty version below)
Spoiler For Spoiler:
Code: [Select]
:lbl BCONS
:ECD->{r1}
:r2->{r1+1}r
:ECD->{r1+3}
:r3->{r1+4}r
:EC9->{r1+6}
:Return

funny story about how I came up with that code:
Spoiler For Spoiler:
I started writing the program during school when I had no access to z80 documentation, so to find the opcodes I used the calcsys app I had installed to decompile the calculator memory and then look up what the original value was in the hex editor. This is exciting for me since I almost always work in a memory-safe environment.

So it can be called like this:

Code: [Select]
:Buff(8)→GDB0
:BCONS(GDB0,λ(5→A),λ(A*2→A))
:0→A
:(GDB0)()
:Disp A▶DEC

(no unicode version)
Spoiler For Spoiler:
Code: [Select]
:Buff(8)->GDB0
:BCONS(GDB0,\(5->A),\(A*2->A))
:0->A
(GDB0)()
:Disp A >DEC

That's not all there is so far, but there's not really anything else that's interesting yet.

Pages: [1]