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

Pages: 1 2 [3] 4 5 ... 62
31
Axe / Re: HELP - Tilemap fill black outside the map
« on: April 11, 2015, 11:30:34 am »
Is your tilemap a set area in memory? Like do you actually have tile data stored somewhere in memory?

32
Axe / Re: HELP - Tilemap fill black outside the map
« on: April 11, 2015, 11:20:21 am »
What is the data structure for your tilemap? Can we see how it looks in the program?

33
TI Z80 / Re: TI-Slender: The Eight Pages
« on: March 29, 2015, 01:19:24 pm »
Yup. Its insane. I'm gonna have to do this one step at a time, but I've made about 40 debugging commits to the repo and it still crashes... so yeah. lol

34
TI Z80 / Re: TI-Slender: The Eight Pages
« on: March 28, 2015, 09:35:19 am »
Update

New font to the project page. http://clrhome.org/slender. Also changed logo from Slender, to Slender-TI to distinguish it from the original, both so my project has a distinct name and to avoid copyright issues.

A few changes to the source code to try to find this bug and still it persists. It crashes immediately after the splash screen (pressing 2nd). I'm toying with the idea that it may be the keypress itself that is crashing it (somehow the value of a is getting distorted during the keypresses, but i added some push/pop af and it persists. My second thought is that its somewhere in my object rendering loop, and since I'm still pending a sorting algorithm, it seems pointless to debug that at this point.

35
TI Z80 / Re: TI-Slender: The Eight Pages
« on: March 24, 2015, 08:27:27 pm »
Since the earlier screenshots were bugging me with how they appeared on calc, I made one that is cleaner and the text is more readable:

36
TI Z80 / Re: ACags Project Reveal
« on: March 14, 2015, 10:17:40 am »
@chickendude, i was able to use the jquery.mobile plugin, and integrate the "tap" method with my current onclick triggers to make the system mobile-compatible.

As an aside, the gif only looks that way in Safari, Chrome and Firefox it looks good. So I sent a bug report to Apple, as I am on the beta program and have a direct channel.

Also, still can't figure out that bug. Zeda poked on the fact that her text routine crashes if the text overflows the screen, but I fixed that manually wrap and it still crashes.

Edit: I made the title screen look better. Here it is:

37
TI Z80 / Re: ACags Project Reveal
« on: March 12, 2015, 04:11:49 pm »
Well, viewing the gif in Chrome shows it nicely. Apparently its a Safari thing. Also, does anyone know... on a website, i know that onclick does not trigger when an element is "touched" on a touch screen, but can the jQuery .click function work?

38
TI Z80 / Re: ACags Project Reveal
« on: March 11, 2015, 08:55:40 pm »
That is a broken link, as there is no official release yet. It's a placeholder for now.

Also, here is an animated screenshot of the title screen. This works, but pressing [2nd] to start the game immediately crashes. The screenshot may be glitchy, bc i know my version of WabbitEmu tends to botch them. Can anyone suggest a better Mac/Unix emulator?

39
Art / Re: Sprite Fine-Tuning: Slender
« on: February 26, 2015, 08:07:16 pm »
bump. I'm not satisfied with my tree at all. Anyone, ideas to make it look better?

40
Art / Re: Sprite Fine-Tuning: Slender
« on: February 11, 2015, 09:50:43 am »
Update:
Sprites are now 4-level masked.

Posted are the slender image, the tree image, and the page image. Below is the bitmap for each. The data is formatted with one byte of the mask, followed by one byte of layer 1, then one byte of layer 2, then rinse and repeat for the whole sprite.

Slender:
Code: [Select]
.db %11111100,%00000001,%00000000 \ .db %00111111,%10000000,%00000000
.db %11111000,%00000010,%00000110 \ .db %00011111,%01000000,%00000000
.db %11111000,%00000100,%00000000 \ .db %00011111,%01000000,%01100000
.db %11111000,%00000110,%00000000 \ .db %00011111,%00000000,%00100000
.db %11111000,%00000011,%00000010 \ .db %00011111,%10100000,%00100000
.db %11111100,%00000011,%00000000 \ .db %00011111,%10000000,%01000000
.db %11110000,%00001110,%00000010 \ .db %00001111,%10010000,%01000000
.db %11100000,%00111101,%00000110 \ .db %00000111,%10011000,%01110000
.db %11000000,%00111111,%00011111 \ .db %00000111,%11111100,%01111000
.db %11000000,%00111111,%00011111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00111111,%00111111 \ .db %00000011,%11101100,%11111100
.db %11000000,%00110011,%00111111 \ .db %00000011,%11111110,%11111100
.db %10000000,%00110011,%00110111 \ .db %00000001,%11110110,%11111100
.db %10000000,%01100011,%00110111 \ .db %00000001,%11100110,%11101100
.db %10000000,%01100111,%00110111 \ .db %00000001,%11100110,%11100110
.db %10000000,%01110111,%00110111 \ .db %00000001,%11100010,%11100110
.db %10000000,%01110111,%00110111 \ .db %00000001,%11100010,%11100110
.db %10000000,%00100111,%00100111 \ .db %00000001,%11100010,%11100110
.db %10000000,%00100111,%00100111 \ .db %00000001,%11100010,%11100110
.db %10000000,%00101111,%01100111 \ .db %00000001,%11100010,%11100110
.db %10000000,%00101111,%01100111 \ .db %00000001,%11100010,%11100110
.db %10000000,%01101110,%01100111 \ .db %00000001,%01110010,%11100110
.db %10000000,%01100110,%01100111 \ .db %00000001,%01110010,%11100110
.db %10000001,%01100110,%01100110 \ .db %10000001,%01110110,%01100110
.db %10000011,%01100100,%01101110 \ .db %11000001,%00110110,%01100110
.db %10000011,%11100100,%01101110 \ .db %11000001,%00100110,%01100110
.db %10000011,%11001100,%01101110 \ .db %11000001,%01100000,%01100010
.db %10000011,%00001110,%01101110 \ .db %11000001,%01100000,%01110010
.db %11110011,%00001110,%01101110 \ .db %11001111,%00110000,%00110010
.db %11110011,%00001100,%00001100 \ .db %11001111,%00110000,%00110000
.db %11110011,%00001100,%00001100 \ .db %11001111,%00110000,%00110000
.db %11110011,%00001100,%00001100 \ .db %11001111,%00010000,%00110000
.db %11110011,%00001100,%00001100 \ .db %11001111,%00010000,%00110000
.db %11110011,%00001100,%00001100 \ .db %11001111,%00010000,%00110000
.db %11111111,%00000100,%00000000 \ .db %11111111,%00010000,%00000000

Tree:
Code: [Select]
.db %11110000,%00000111,%00001000 \ .db %00011111,%11100000,%00100000
.db %11110000,%00000111,%00001000 \ .db %00011111,%11100000,%00100000
.db %11110000,%00000111,%00001000 \ .db %00011111,%11100000,%00100000
.db %11110000,%00000111,%00001000 \ .db %00011111,%11100000,%00100000
.db %11110000,%00000111,%00001000 \ .db %00001111,%11010000,%00110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%11010000,%00110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%11010000,%00110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%11010000,%01110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%10010000,%01110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%10010000,%01110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%10010000,%01110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%10010000,%01110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%10010000,%01110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%10010000,%01110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%10010000,%01110000
.db %11100000,%00001111,%00010000 \ .db %00001111,%00010000,%11110000
.db %11100000,%00001110,%00010001 \ .db %00001111,%00010000,%11110000
.db %11100000,%00001110,%00010001 \ .db %00001111,%00010000,%11110000
.db %11100000,%00001100,%00010011 \ .db %00001111,%00010000,%11110000
.db %11100000,%00001100,%00010011 \ .db %00001111,%00010000,%11110000
.db %11100000,%00001101,%00010011 \ .db %00001111,%00010000,%11110000
.db %11100000,%00001101,%00010011 \ .db %00001111,%00010000,%11110000
.db %11100000,%00001000,%00010111 \ .db %00001111,%00010000,%11110000
.db %11100000,%00001000,%00010111 \ .db %00001111,%00010000,%11110000
.db %11000000,%00011000,%00100111 \ .db %00000111,%00111000,%11111000
.db %11000000,%00011000,%00110111 \ .db %00000111,%00111000,%11111000
.db %11000000,%00000010,%00111111 \ .db %00000111,%01111000,%11111000
.db %11000000,%00000010,%00111111 \ .db %00000111,%01111000,%11111000
.db %11000000,%00000000,%00111111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00000000,%00111111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00000001,%00111111 \ .db %00000111,%11011000,%11111000
.db %11000000,%00000001,%00111111 \ .db %00000111,%11111000,%11011000
.db %11000000,%00000011,%00111111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00000011,%00111111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00000111,%00111111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00011111,%00111111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00111111,%00111111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00111111,%00111111 \ .db %00000111,%11111000,%11111000
.db %11000000,%00111111,%00111111 \ .db %00000111,%11111000,%11101000
.db %11000000,%00111111,%00111111 \ .db %00000111,%11111000,%11111000

Page:
Code: [Select]
.db %11111111,%00000000,%00000000
.db %11000011,%00000000,%00000000
.db %10000001,%00001000,%00001000
.db %10000001,%00110000,%00110000
.db %10000001,%00001100,%00001100
.db %10000001,%00110000,%00110000
.db %10000001,%00000100,%00000100
.db %10000001,%00011000,%00011000
.db %10000001,%00000000,%00000000
.db %11111111,%00000000,%00000000

41
Art / Sprite Fine-Tuning: Slender
« on: February 04, 2015, 02:35:10 pm »
Here are some of the sprites that I'm gonna be using for Slender the Eight Pages. I am asking anyone with a prowess at pixel art to please make them look nicer. I will upload the image and the bitmap for observation. Thanks.

Also anyone who has or wants to make a sprite of a tall tree, a piece of paper, a shack, a car, and an oil tanker can do so and upload. Remember, 4-level grey, and as though viewed at night.

4-level greyscale:

Slender:
Code: [Select]
; layer 0
.db %11111111,%11111111
.db %11111110,%10111111
.db %11111111,%11111111
.db %11111111,%10111111
.db %11111110,%10111111
.db %11111110,%00111111
.db %11111110,%10111111
.db %11111110,%10111111
.db %11111110,%00011111
.db %11111110,%00111111
.db %11111110,%01111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
; layer 1
.db %11111111,%11111111
.db %11111111,%01111111
.db %11111110,%00111111
.db %11111110,%01111111
.db %11111111,%01111111
.db %11111111,%11111111
.db %11111111,%01111111
.db %11111111,%01111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111
.db %11111111,%11111111

A page:
Code: [Select]
; layer 0
.db %11111111
.db %11000011
.db %10001001
.db %10110001
.db %10001101
.db %10110001
.db %10000101
.db %10011001
.db %11000011
.db %11111111
; layer 1
.db %11111111
.db %11000011
.db %10001001
.db %10110001
.db %10001101
.db %10110001
.db %10000101
.db %10011001
.db %11000011
.db %11111111

42
TI Z80 / TI-Slender: The Eight Pages
« on: February 03, 2015, 12:43:49 pm »
A few days later than promised, I'm revealing the topic of my almost-complete game.

This game will be a clone of Slender: The Eight Pages, featuring 4-level interrupt-based greyscale, and all the static effects you know and love. The game will be rendered in 3D. Granted I won't be able to emulate the creepy music, but I'm sure the game will be fun, if not scary.

Project Page: http://clrhome.org/slender

If this game is well-received, I will clone the rest of the Slender series as well.

43
TI Z80 / Re: Figuring out what's in front of you (RayCaster)
« on: January 31, 2015, 09:35:00 am »
bump

44
TI Z80 / Re: Figuring out what's in front of you (RayCaster)
« on: January 28, 2015, 09:17:40 am »
That does what your code does (and will actually assemble). But i'm not sure if you really wanted to be using playerDirection to add those values to or priorAngle. Probably priorAngle. Shouldn't you at least try to assemble your code first?

I can't comment on the code as a whole because i don't really understand raycasting or what you're trying to do, sorry...

I know there are certain technicalities within it like the ld b,** stuff. However, I want to get the routine conceptually working, then i fix that.
To answer your question about priorAngle, that is actually just a check if whether the current angle and the last angle we calculated are the same. If they are, then we skip the part where we figure out angleStop and the starting angle (which I just found a mistake... angle current needs to be manually set if we do that, or angleStart and angleCurrent need to be separate).

***Edit*** fixed all instances of that, and amended my code to above to reflect

***Edit 2 *** found another mistake. As of now, the raycaster, when calculating the vectors for the present angle, only saves the .8 part of the 8.8FP number. However, in the routine, i add hl (where h= x origin integer and l= y origin integer) to bc (where b is the .8 part of the x vector and c is the .8 part of the y vector). Clearly, that's a mistake, but short of adding more RAM and using the full 8.8 location, i don't see a workaround.

45
TI Z80 / Re: Figuring out what's in front of you (RayCaster)
« on: January 27, 2015, 03:43:28 pm »
Update: Got a routine. Let me know if I goofed up anywhere:

The routine should create an 11-entry stack for the rendering-routine to process. Each "entry" corresponds to a section of the "screen". Entry 1 is far left, 2 is next to that, and so on. If the renderer hits a $ff, it skips that section of screen. Otherwise, it renders the masked greyscale sprite (which is based through a scale-down routine, based on distance) for that section and moves on.

Feel free to correct/optimize, but let me know what I did wrong so I learn from it :p

Code: [Select]
#define distance tempSwapArea ; 1 byte
#define rayCurrent distance+1 ; 2 bytes
#define angleCurrent rayEnd+2 ; 1 byte
#define angleStart angleCurrent+1 ; 1 byte
#define angleStop angleStart+1 ; 1 byte
#define iterVector angleStop+1  ; 2 bytes
#define rcStack iterVector+2 ; 2 bytes, a pointer to the start of the raycaster object stack
#define renderDistance 10 ; adjust this to change the render distance
#define priorAngle rcStack+2 ; 1 byte


engine_raycaster_Init:
ld hl,smallEditCol
ld (rcStack),hl ; reset pointer to start of raycaster stack
ld a,(playerDirection)
ld hl,priorAngle
cp (hl)
jr z,{[email protected]}
ld a,b
ld b,5
add a,b
ld (angleStop),a
ld b,-10
add a,b
ld (angleStart),a
@: ld a,(angleStart) ; sorry about this bit, but needs to be here for the jump to work
ld (angleCurrent),a ; shouldnt be too time-consuming to do that
rc_loop_angle:
call _getTempVector
ld a,(playerPosX)
ld h,a
ld a,(playerPosY)
ld l,a
ld bc,(iterVector)
rc_loop_ray:
add hl,bc
call rc_getDistance
ld (distance),a
ld a,l
multAbyWidth
ld c,h
ld b,0
add hl,bc
call rc_getMap
ld a,(hl)
or a
jr z,rc_tilepush_skip
; rc_tilepush: if tile is something, push this object onto rcStack, renderer will handle it
ld de,(rcStack)
ld (de),a ; object type Id
inc de
ld a,(distance)
ld (de),a
inc de
ld (rcStack),de
jr rc_skip_writeempty
rc_tiletest_skip:
ld a,(distance)
cp renderDistance
jr z,rc_loop_angle_next
jr c,rc_loop_angle_next
jr rc_loop_ray
rc_loop_angle_next:
ld de,(rcStack)
ld a,$ff
ld (de),a
inc de
ld (rcStack),de
rc_skip_writeempty:
ld a,(angleCurrent)
inc a
ld (angleCurrent),a
jr rc_loop_angle








rc_getTempVector:
; using current angle, gets vectors. each vector is in 8.8 FP format, so we only save the .8 part
; input: a = angle
; output: new vectors loaded into (iterVector) word
push af
call calcSin ; a = angle
ld (iterVector),l ; hl = 8.8 FP
pop af
call calcCos
ld (iterVector+1),l
ret

rc_getMap:
; input: hl = offset in map
; output: hl points to tile
ld bc,(SlendMapPtr)
add hl,bc
ret

rc_getDistance:
; input: hl = current testing location
; output: a = distance from origin
ret

Pages: 1 2 [3] 4 5 ... 62