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

Pages: 1 ... 30 31 [32] 33 34 ... 55
466
TI Z80 / Re: Jade
« on: March 13, 2013, 07:31:29 pm »
Yeah, that's what i was thinking about the indirection, being able to store an address in a variable and read data from the address stored in that variable, and not the address number. It seems like a kinda roundabout way of doing things but i think it'd be really useful. I'm curious how the cpi statement would be, though. I think it'd be convenient to have cpi(ind_addr,addr) and cpi(ind_addr,const) but that's backwards from the normal instruction set (cpi(addr,ind_addr)). Anyway, with indirection you can do lots more cool things :)

467
TI Z80 / Re: Jade
« on: March 13, 2013, 10:54:47 am »
Very cool! Now how would you handle collision detection?

EDIT: And one of my ideas was just to use the LSB as the tile id in your tilemaps instead of multiplying it by 8 and calculating the offset. Then you could just do something like pop(sLSB0).

468
TI Z80 / Re: Jade
« on: March 13, 2013, 10:24:11 am »
Hmm, interesting idea, i'll try that out. The stack goes up, doesn't it? (pushing increases the sp, popping decreases)

I've got a couple ideas, but i want to test them out first to see if they'll actually work out.

469
TI Z80 / Re: Jade
« on: March 13, 2013, 09:59:33 am »
Well the image isn't an actual tilemap, it's just me copying the sprite over a few times. What i wanted to do is read map+0, check what value it is and draw the appropriate sprite. Then read map+1, map+2, etc. Essentially read a tilemap from memory, but i couldn't figure out how to do it. You can check a specific byte in memory, but can you check what (map) is, then what (map+1) is, etc. ? Maybe my mind just froze up and i'm missing something super simple.

470
Gaming Discussion / Re: Your best video game pickups.
« on: March 13, 2013, 07:06:55 am »
You must have turned me into a metapod, because I just used harden
Edit: Oh, you mean't buying video games not pick up lines, I will see myself out.
This is my favorite post in the thread!

As for my best video game pickups, i've gotta say:
1. Phoenix
2. Bubble Bobble
3. Joltima
4. BomberKids
5. Lotus Turbo Challenge

...all picked up around 2000/2001 for a grand total of.. nothing (unless you count the effect they had on my grades)!

If it's gotta be something you paid for, i'd say getting a brand spanking new copy of Legend of Legaia for $15 in 1999 is up there.

EDIT: Also, a new copy of the GC version of Phantasy Star Online for $20 in 2003 was another game i bought on a whim that sucked hours and hours of my life away.

471
TI Z80 / Re: Jade
« on: March 13, 2013, 01:37:05 am »
What do you mean draw a string? Just print text? I also tested out AsmDream but i just can't get used to its syntax, i think for now i'm going to stick with the computer ;)

I just looked through the technical info and it's very well put together. Let's get some more sample games! :)

EDIT : Also, what instructions can currently be used with c/z flags? To make defining things easier, we could do something like:
lda = 0
adda = 1
adca = 2
;... etc.
c = 64
z = 128
;...
#define    lda(addr1  , addr2)     .db lda,addr1,addr2
#define    ldac(addr1  , addr2)     .db lda+c,addr1,addr2
#define    ldaz(addr1  , addr2)     .db lda+z,addr1,addr2

#define    adda(addr1 , addr2)     .db adda,addr1,addr2
#define    addac(addr1 , addr2)     .db adda+c,addr1,addr2
#define    addaz(addr1 , addr2)     .db adda+z,addr1,addr2

#define    adca(addr1 , addr2)     .db adca,addr1,addr2
#define    adcac(addr1 , addr2)     .db adca+c,addr1,addr2
#define    adcaz(addr1 , addr2)     .db adca+z,addr1,addr2
;etc.

EDIT2 : So i've been trying to figure out how to get a simple tilemap working but i can't think of how to do it without registers :/ Here's what i've got so far, a fake tilemap setup:

Spoiler For updated jade.inc:
Code: [Select]
;ports
sLSB0 = 00h
sMSB0 = 01h
sX0 = 02h
sY0 = 03h
sMethod0 = 04h
sLSB1 = 05h
sMSB1 = 06h
sX1 = 07h
sY1 = 08h
sMethod1 = 09h
sLSB2 = 0Ah
sMSB2 = 0Bh
sX2 = 0Ch
sY2 = 0Dh
sMethod2 = 0Eh
sLSB3 = 0Fh
sMSB3 = 10h
sX3 = 11h
sY3 = 12h
sMethod3 = 13h
sLSB4 = 14h
sMSB4 = 15h
sX4 = 16h
sY4 = 17h
sMethod4 = 18h
sLSB5 = 19h
sMSB5 = 1Ah
sX5 = 1Bh
sY5 = 1Ch
sMethod5 = 1Dh
sLSB6 = 1Eh
sMSB6 = 1Fh
sX6 = 20h
sY6 = 21h
sMethod6 = 22h
sLSB7 = 23h
sMSB7 = 24h
sX7 = 25h
sY7 = 26h
sMethod7 = 27h
key0 = 28h
key1 = 29h
key2 = 2Ah
key3 = 2Bh
key4 = 2Ch
key5 = 2Dh
key6 = 2Eh
keyMask = 2Fh
sMask = 30h
status = 31h ;bit 7 set means turn the system off, bit 0 = LCD update

;RAM =ates
saveSScreen = $86EC
stackptr = 32h
PClow = 33h+saveSScreen
PChigh = 34h+saveSScreen
stackbase = 80h+saveSScreen


_FlashToRam2 = 8054h
;flags
c = 64
z = 128
#define lda(addr1 , addr2) .db 0,addr1,addr2
#define adda(addr1 , addr2) .db 1,addr1,addr2
#define adca(addr1 , addr2) .db 2,addr1,addr2
#define suba(addr1 , addr2) .db 3,addr1,addr2
#define sbca(addr1 , addr2) .db 4,addr1,addr2
#define xora(addr1 , addr2) .db 5,addr1,addr2
#define ora(addr1 , addr2) .db 6,addr1,addr2
#define anda(addr1 , addr2) .db 7,addr1,addr2
#define cpa(addr1 , addr2) .db 8,addr1,addr2
#define inca(addr) .db 9,addr
#define rotl(addr) .db 10,addr
#define shftl(addr) .db 11,addr
#define pusha(addr) .db 12,addr
#define pop(addr) .db 13,addr
#define inv(addr) .db 14,addr
#define ldira(addr,size) .db 15,addr,size

#define ldc(addr , const) .db 16,addr,const
#define addc(addr , const) .db 17,addr,const
#define adcc(addr , const) .db 18,addr,const
#define subc(addr , const) .db 19,addr,const
#define sbcc(addr , const) .db 20,addr,const
#define xorc(addr , const) .db 21,addr,const
#define orc(addr , const) .db 22,addr,const
#define andc(addr , const) .db 23,addr,const
#define cpc(addr , const) .db 24,addr,const
#define deca(addr) .db 25,addr
#define rotr(addr) .db 26,addr
#define shftr(addr) .db 27,addr
#define pushc(const) .db 28,const
#define ex(addr1,addr2) .db 29,addr1,addr2
#define bits(addr,const) .db 30,addr,const
#define ldirc(addr,size) .db 31,addr,size

#define ret() .db 32
#define setz() .db 33
#define setc() .db 34
#define togz() .db 35
#define togc() .db 36
#define jp1(Addr) .db 37,Addr
#define jp2(Addr) .db 38,Addr
#define jrf(offset) .db 39,offset-1-$
#define jrfz(offset) .db 39+z,offset-1-$
#define jrb(offset) .db 40,1-offset+$
#define call1(Addr) .db 41,Addr
#define call2(Addr) .db 42,Addr
#define callf(offset) .db 43,offset-1-$
#define callb(offset) .db 44,1-offset+$

#define ldcz(addr1 , const) .db 16+128,addr1,const
#define jrbz(offset) .db 40+128,1-offset+$
#define incaz(addr) .db 9+128,addr
#define decaz(addr) .db 25+128,addr
#define retz() .db 32+128

;key0
jkDown = %11111110
jkRight = %11111101
jkLeft = %11111011
jkUp = %11110111
;key1
jkClear = %10111111
;key6
jkGraph = 254
jkTrace = 253
jkZoom = 251
jkWindow = 247
jkY = 239
jk2nd = 223
jkMode = 191
jkDel = 127

lcdupdatebit = 0
spriteupdatebit = 1
Spoiler For jadeGame.asm:
Code: [Select]
"Jade.inc"
.org $00

mapX = 252
mapY = 253
counter1 = 254
counter2 = 255

#define BIT ^$FF

start:
ldirc(keyMask,2) ;keyMask, spriteMask
.db %0100011,%1 ;enable key groups 0 and 1, sprite0
ldirc(sLSB0,5)
.dw $100+sprite \ .db 0,0,2
ldirc(mapX,4)
.db 0,0,12,2
tilemap:
orc(status,2) ;tell the status port to draw the sprites
addc(sX0,8)
deca(counter1)
togz()
jrbz(tilemap)
ldc(counter1,12)
ldc(sX0,0)
ldc(sY0,8*7)
deca(counter2)
togz()
jrbz(tilemap)
ldc(sY0,8*6)
loop:
orc(status,2) ;tell the status port to draw the sprites
orc(status,3) ;tell the status port to update the LCD, then draw the sprites
bits(key0,jkDown BIT)
incaz(sY0)
bits(key0,jkUp BIT)
decaz(sY0)
bits(key0,jkLeft BIT)
incaz(sX0)
bits(key0,jkRight BIT)
decaz(sX0)
cpc(key1,jkClear)
ldcz(status,$80)
jrb(loop)

map:
.db 1,1,1,1,1,1,1,1,1,1,1,1
.db 1,0,0,0,0,0,0,0,0,0,0,1
.db 1,0,0,0,0,0,0,0,0,0,0,1
.db 1,0,0,0,0,0,0,0,0,0,0,1
.db 1,0,0,0,0,0,0,0,0,0,0,1
.db 1,0,0,0,0,0,0,0,0,0,0,1
.db 1,0,0,0,0,0,0,0,0,0,0,1
.db 1,1,1,1,1,1,1,1,1,1,1,1

sprite:
.db %11111111
.db %11011011
.db %10000001
.db %10011001
.db %10011001
.db %10000001
.db %11011011
.db %11111111

472
My 84+SE:
85
128
The 2nd test crashed the calc, but i had to disable zStart first ;)

473
News / Re: Test SLOVA, a language-learning game!
« on: March 12, 2013, 05:28:50 am »
The grizzles weren't usually what killed me, though it did happen, especially in the beginning. I honestly think 4 (or 5) shields is a good number. For the nukes, it would be nice to have a second animation (two more 16x16 bomb clouds) on either side of the grizzle just to give you an idea. Having deaths take away shields is another option, and like you said 6 shields might be better in that case. I'm currently working my way back from the start after turning the calc off during a _GetKey mid-program to see what happened :P

474
TI Z80 / Re: Slova progress
« on: March 11, 2013, 11:28:34 am »
Btw, i don't know if you saw it or not but i left my first impressions in the news thread: http://ourl.ca/18129/341220 :)

475
News / Re: Yeux Morts: Dying Eyes in French!
« on: March 11, 2013, 03:13:01 am »
Dunno, they don't really have a section for programs in different languages, if a program offers more than one language it's usually packed together in the same file. I guess we can just ask them what to do. There's also bug fixes and optimizations and things we could take care of. I always thought smoothscrolling would be a nice feature, too, and some of the menus aren't that pretty.

476
Ash: Phoenix / Re: Ash: Phoenix- Reboot
« on: March 11, 2013, 03:07:26 am »
¿Podemos esperar una versión en castellano de Ash: Phoenix? ¿Tal vez Ceniza: el Fénix?
(Should we be expecting a Spanish version of Ash: Phoenix?) :D

477
News / Re: Yeux Morts: Dying Eyes in French!
« on: March 11, 2013, 01:58:06 am »
Sure, feel free to upload it anywhere, TI Planet seems like an obvious choice :)

478
News / Re: Test SLOVA, a language-learning game!
« on: March 10, 2013, 09:57:59 am »
So i somehow missed this before! Just loaded this to my 83+ and it's really cool, you get lots of exposure with the words. Here are some of my thoughts:
- When beating a level or losing, you've got a _GetKey call (and turning the calc off will crash ;)) which is just kinda weird since everywhere else you can use 2nd to advance.
- The keys on the main menu aren't exactly intuitive, i tried using the arrow keys to change level packs and 2nd to pick a level. Not really an issue though :)
- Watch out for those nukes! It's a little hard to tell exactly how far away you need to be to nuke one of the Gruzzles. Most of my deaths were self-induced :P
- It's a little frustrating having to start from scratch whenever you die, especially if you've nuked yourself or stepped on water or something silly like that. What about having a number of chances to get through a level (say 3) where you can die twice without losing your progress, if you die a third time you have to start that level over from scratch?

I forgot what else i wanted to say! Overall i think it's really cool, i wasn't sure how i was going to feel about the lack of physics but it's actually kinda cool being able to fly around. The controls are really quick and responsive. Sometimes the worlds feel really huge, though i don't know if that's good or bad :P I like how all the words in the foreign language reappear even if you've already collected that word, you get lots of exposure to the words. Right now i think the biggest thing is just the feeling you get when you die and have to collect all the words over again. At first i died quite a bit but quickly figured things out, i still nuke myself quite a bit and having to start over when you've already collected 4 or 5 words just kinda sucks ;)

Anyway, very cool and i'll try to put together some Spanish packs and if i can figure out how to fit some Chinese characters into 16x16 sprites maybe we can have a little Chinese pack (though i think a Chinese pack would be better with characters and pinyin, rather than English translations).

479
News / Re: Yeux Morts: Dying Eyes in French!
« on: March 10, 2013, 05:32:01 am »
Cool, so here's a version with the updated French menu.

480
News / Re: Yeux Morts: Dying Eyes in French!
« on: March 10, 2013, 04:43:50 am »
If you've got an idea on how to best translate the menu, we can add that in easily enough. The reason it's not translated is because they're actually sprites, not text. I thought: "Statut", "Item/Objet", "Cherch" (i don't think chercher will fit) and "Magie"?

Pages: 1 ... 30 31 [32] 33 34 ... 55