Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
This is an archived, read-only copy of the United-TI subforum , including posts and topic from May 2003 to April 2012. If you would like to discuss any of the topics in this forum, you can visit Cemetech's Your Projects subforum. Some of these topics may also be directly-linked to active Cemetech topics. If you are a Cemetech member with a linked United-TI account, you can link United-TI topics here with your current Cemetech topics.

This forum is locked: you cannot post, reply to, or edit topics. Sonic => Your Projects
United-TI Archives -> Sonic
 
    » Goto page Previous  1, 2, 3  Next
» View previous topic :: View next topic  
Author Message
Raiser


Advanced Newbie


Joined: 06 Sep 2004
Posts: 51

Posted: 05 Mar 2005 04:30:48 pm    Post subject:

Here's the newest ones:

They are, if you can't tell: springing up, skidding (used when stopping abruptly), Sonic tapping his foot (if you stand in one spot for too long), sonic getting hit (which had to be 16x16 because he's on a diagonal slant), sonic's end of act pose (no, he's NOT flipping you off, it was very hard to not give that impression), looking up (which didn't turn out to be very different from the spring sprite), spindash (without the dust cloud), sonic when he dies, and an attempt at making a sprite for hanging from a vine/hook.

They still need some work, I know, but I'm looking for some opinions. As far as smoothing the running sprite goes, I'll take a look at it after I get home from work tonight.


Last edited by Guest on 05 Mar 2005 04:35:03 pm; edited 1 time in total
Back to top
leofox
INF student


Super Elite (Last Title)


Joined: 11 Apr 2004
Posts: 3562

Posted: 05 Mar 2005 04:51:00 pm    Post subject:

It looks good so far, maybe you can change the looking up and spring sprites so they look more different.
Back to top
Mike_k


Newbie


Joined: 16 Sep 2004
Posts: 45

Posted: 05 Mar 2005 07:36:22 pm    Post subject:

Its really easy to fix... just fill in one pixel at the bottom white "lines" for his eyes.

-Mike
Back to top
Raiser


Advanced Newbie


Joined: 06 Sep 2004
Posts: 51

Posted: 06 Mar 2005 12:12:16 am    Post subject:

Mike_k wrote:
Its really easy to fix... just fill in one pixel at the bottom white "lines" for his eyes.

-Mike

Which sprite do you mean? Adding a white pixel to Sonic's eyes in the looking up/spring sprite [i]does[/] define his pupils more. It looks much better now. But if I misunderstood your post, show me what you meant. Pictures are always welcome.


Last edited by Guest on 06 Mar 2005 12:14:22 am; edited 1 time in total
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 06 Mar 2005 01:33:46 am    Post subject:

BTW, what program did you use to animate the running & spinning sprites? I could only find 30 day trials.
Back to top
Mike_k


Newbie


Joined: 16 Sep 2004
Posts: 45

Posted: 06 Mar 2005 01:46:43 am    Post subject:

I can find lots on www.astalavista.com Cool

-Mike
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 06 Mar 2005 02:43:10 am    Post subject:

Well, more specifically, did you draw the sprites in GStudio first and animate them? Or did you feed them frame-by-frame into a gif program?
Back to top
Raiser


Advanced Newbie


Joined: 06 Sep 2004
Posts: 51

Posted: 06 Mar 2005 10:54:18 am    Post subject:

DigiTan wrote:
Well, more specifically, did you draw the sprites in GStudio first and animate them?  Or did you feed them frame-by-frame into a gif program?

I draw all of my stuff in Paint, (it's the easiest program for pixel plotting), and then import it frame by frame into Jasc Animation shop. I like being able to use colour at times in order to tell the difference between different parts of the sprite, and then make it black and white when I'm done, so something like GS Studio wouldn't be ideal for the drawing stage.

Edit: I suppose I could just use the greyscale colours that GS Studio provides, I'll look into it sometime.


Last edited by Guest on 06 Mar 2005 10:56:30 am; edited 1 time in total
Back to top
shadowing
Powered by 64


Calc Guru


Joined: 06 Jan 2004
Posts: 1002

Posted: 06 Mar 2005 01:57:07 pm    Post subject:

Raiser, been here in a long time I see. So far the sprites are going well Smile
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 07 Mar 2005 04:42:53 pm    Post subject:

Alright. Well it looks like the sprite work is going like gangbusters now. Does anyone have recommendations for sprite and tilemap routines?

The sprite code would have to be non-aligned, and clipped to prevent weird graphics. Also, it probably needs to be masked so Sonic can appear in front of/behind loops and maybe other objects.


Last edited by Guest on 07 Mar 2005 04:44:37 pm; edited 1 time in total
Back to top
koolmansam375


Advanced Member


Joined: 09 Oct 2004
Posts: 254

Posted: 07 Mar 2005 05:46:21 pm    Post subject:

here you go:

This routine isnt mine so dont give me credit Very Happy ! It was written by Dwedit over at the Maxcoderz forums


Code:
;Fastcopy + Horizontal + Vertical Scrolling Tilemap by Dwedit
;
;Input:
;  de = plotsscreen
;  (MapBase) = word,Base address of map
;  (cameray) = word,vertical location of camera
;  (camerax) = word,horizontal location of camera
;  (tilesbase) = word,pointer to tileset
;  tilesbuf = label,destructable tileset buffer equal in size to the tileset
;  tilesbuf2 = label,another destructable tileset buffer, also equal in size to the tileset
;  NUM_TILES = byte constant,number of tiles in the tileset (size of tileset/8)
;  (mapwidth) = word,width of tilemap
;Output:
;  screen copied from buffer to screen
;  tilemap drawn on buffer, with origin (camerax,cameray)
;
;Needs modification, change where it multiplies hl by map width (currently fixed at 12)

FastCopyTilemap:
 di
 ld a,$80
 out ($10),a;set row 0
 push de
 ;Get new mapbase and x-tile scroll from camerax
   ld hl,(camerax)
   call DivBy8Common
   ld bc,(MapBase)
   add hl,bc
   push hl
     call MessUpTiles
   ;Now get yscroll and adjust basemap for cameray
     ld hl,(cameray)
     call DivBy8Common
     ld (TM_ModYpos+1),a

   ;Multiply HL by map width here (needs modify)
     add hl,hl
     add hl,hl
     ld b,h
     ld c,l
     add hl,hl
     add hl,bc

   pop bc
   add hl,bc
   push hl
   ;RenderTileModder:
     add a,a
     add a,a
     ld c,a
     add a,a
     add a,c
     ld b,0
     ld c,a
     ld hl,RenderTile
     push hl
       add hl,bc
       ld (TM_Mod1+1),hl
     pop hl
     ld a,c
     cpl
     add a,97
     ld c,a
     add hl,bc
     ld (TM_Mod2+1),hl
   pop hl
 pop de
 xor a
TileMapLoop1:
 push af
  push hl \ push de;save base coordinates
   add a,$20   ;$20 + C = set column
   out ($10),a;set column
  
 ;Draw top tile (clipped)
   push hl
     ld bc,TilesBuf2
     ld a,(hl)
     inc hl
     ld l,(hl)
     ld h,0
     add hl,hl
     add hl,hl
     add hl,hl
     add hl,bc
     push hl
     pop ix
     ld l,a
     ld h,0
     add hl,hl
     add hl,hl
     add hl,hl
     ld bc,TilesBuf
     add hl,bc
TM_ModYpos:
     ld bc,0000
     add hl,bc
     add ix,bc
    
     ex de,hl
     ld bc,12
TM_Mod1:
     call 0
   pop hl
   ld bc,(mapwidth)
   add hl,bc;advance tile pointer by map's width
  
 ;Draw next 7 tiles
   ld b,7     ;8 tiles per column
TileMapLoop2:
   push bc
     push hl   ;save position on map
       ld bc,tilesBuf2
       ld a,(hl)
       inc hl
       ld l,(hl)
       ld h,0
       add hl,hl
       add hl,hl
       add hl,hl
       add hl,bc
       push hl
       pop ix
       ld l,a
       ld h,0
       add hl,hl
       add hl,hl
       add hl,hl
       ld bc,tilesBuf
       add hl,bc

       ex de,hl
       ld bc,12
       call RenderTile
     pop hl
     ld bc,(mapwidth)
     add hl,bc;advance tile pointer by map's width
   pop bc
   djnz TileMapLoop2
  
 ;Draw bottom tile (clipped)
   ld bc,tilesBuf2
   ld a,(hl)
   inc hl
   ld l,(hl)
   ld h,0
   add hl,hl
   add hl,hl
   add hl,hl
   add hl,bc
   push hl
   pop ix
   ld l,a
   ld h,0
   add hl,hl
   add hl,hl
   add hl,hl
   ld bc,tilesBuf
   add hl,bc
  
   ex de,hl
   ld bc,12
TM_Mod2:
   call 0
DontRenderLastTile:
  pop de \ pop hl;back to the top
  inc hl \ inc de;next column for map and screen
 pop af
 inc a;next column
;  ld a,c
 cp 12;stop after 12 columns  (maybe replace this if you need a smaller map)
 jp c,TileMapLoop1
 ret;Done

RenderTile:
 ld a,(hl)   ;Write old byte to LCD
 out ($11),a
 ld a,(de)   ;read graphics data
 or (ix+0)
 ld (hl),a
 inc de
 inc ix
 add hl,bc
 ld a,(hl)   ;Write old byte to LCD
 out ($11),a
 ld a,(de)   ;read graphics data
 or (ix+0)
 ld (hl),a
 inc de
 inc ix
 add hl,bc
 ld a,(hl)   ;Write old byte to LCD
 out ($11),a
 ld a,(de)   ;read graphics data
 or (ix+0)
 ld (hl),a
 inc de
 inc ix
 add hl,bc
 ld a,(hl)   ;Write old byte to LCD
 out ($11),a
 ld a,(de)   ;read graphics data
 or (ix+0)
 ld (hl),a
 inc de
 inc ix
 add hl,bc
 ld a,(hl)   ;Write old byte to LCD
 out ($11),a
 ld a,(de)   ;read graphics data
 or (ix+0)
 ld (hl),a
 inc de
 inc ix
 add hl,bc
 ld a,(hl)   ;Write old byte to LCD
 out ($11),a
 ld a,(de)   ;read graphics data
 or (ix+0)
 ld (hl),a
 inc de
 inc ix
 add hl,bc
 ld a,(hl)   ;Write old byte to LCD
 out ($11),a
 ld a,(de)   ;read graphics data
 or (ix+0)
 ld (hl),a
 inc de
 inc ix
 add hl,bc
 ld a,(hl)   ;Write old byte to LCD
 out ($11),a
 ld a,(de)   ;read graphics data
 or (ix+0)
 ld (hl),a
 inc de
 inc ix
 add hl,bc
 ex de,hl
 ret

DivBy8Common:
 ld a,l
 sra h
 rra
 sra h
 rra
 sra h
 rra
 ld c,l
 ld l,a
 ld a,c
 and 7
 ret

MessUpTiles:;input: a=x pixel position
 cpl
 add a,8
MessUpTiles2:
 ld (MessUpTilesModify+1),a
 ld hl,InvertedMaskTable
 ld b,0
 ld c,a
 add hl,bc
 ld a,(hl)
 ld (MessUpTilesMask1+1),a
 cpl
 ld (MessUpTilesMask2+1),a
 ld hl,(Tilesbase)
 ld de,TilesBuf
 ld ix,TilesBuf2
 ld bc,8*NUM_TILES
MessUpTilesLoop:
 ld a,(hl)
MessUpTilesModify:
 jr $+2
 rlca
 rlca
 rlca
 rlca
 rlca
 rlca
 rlca
 ld (de),a
MessUpTilesMask2:
 and 0
 ld (ix+0),a
 ld a,(de)
MessUpTilesMask1:
 and 0
 ld (de),a
 inc de
 inc ix
 cpi
 jp pe,MessUpTilesLoop
 ret

InvertedMaskTable:;stick this wherever you like
 .db %10000000
 .db %11000000
 .db %11100000
 .db %11110000
 .db %11111000
 .db %11111100
 .db %11111110
 .db %11111111
Back to top
Madskillz


Active Member


Joined: 02 Jan 2004
Posts: 608

Posted: 07 Mar 2005 06:37:04 pm    Post subject:

ha ha...I too downloaded that...I think I need to rewrite the scrolling engine thus far...Spring break for me will be the best time for a demo to be released...hopefully I can post pictures between now and then though.
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 09 Mar 2005 12:15:38 am    Post subject:

Sounds like were making some good progress. What I'd like to do sometime within the next week or so is do a graphics test to estimate what our max frame rate and sprite limit will be. If we really want to pull this one off, we should shoot to make the game run at a ~consistant frame rate no matter what happens.
Back to top
Raiser


Advanced Newbie


Joined: 06 Sep 2004
Posts: 51

Posted: 09 Mar 2005 01:15:50 pm    Post subject:

DigiTan wrote:
Sounds like were making some good progress.  What I'd like to do sometime within the next week or so is do a graphics test to estimate what our max frame rate and sprite limit will be.  If we really want to pull this one off, we should shoot to make the game run at a ~consistant frame rate no matter what happens.

Keep in mind that when Sonic loses his rings, a maximum of 20 rings go flying around the screen, each with its own path. I don't think that the Ti83+ (not SE) can pull that off. Factor in that Sonic and a possible enemy will also be on screen, We're talking about extreme slowdown. So, perhaps we should do the same thing Sega did for the Game Gear Sonic games: make about 2 to 4 rings go flying instead of 20. Just make sure that you don't copy the Game Gear Sonic 1's style of having one ring go flying that you can't even collect. that really sucked.
Back to top
Mike_k


Newbie


Joined: 16 Sep 2004
Posts: 45

Posted: 09 Mar 2005 01:50:23 pm    Post subject:

I remeber one of the old sonic games actually DID have extreme slowdown when sonic lost his rings... oh, and whats up with this forum? It says there is 9 topics under sonic... I'm counting 3

-Mike
Back to top
Weregoose
Authentic INTJ


Super Elite (Last Title)


Joined: 25 Nov 2004
Posts: 3976

Posted: 09 Mar 2005 03:38:42 pm    Post subject:

How about this: When Sonic gets hit, a single ring floats slowly above him and "fades out," flashing with an increasingly faster frequency. The number of rings becoming lost would be indeterminable by the user without knowing the values before and after the hit, but personally I wouldn't care to count how many rings are flying in all directions away from me, either. ;)

[EDIT]

I forgot that the player gets a chance to pick up the rings once they go flying. Neutral *whoops*


Last edited by Guest on 09 Mar 2005 04:53:01 pm; edited 1 time in total
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 09 Mar 2005 05:32:11 pm    Post subject:

That Game Gear approach could really work for us. We'll have to make sure the bouncing rings have some decent collision detection. Otherwise, it'd be like the Genesis rings that do crazy stuff like get stuck in walls and "fall" uphill (very annoying).

We could try this- have Sonic drop say...up to four rings and each ring represents a quarter of whatever you dropped. Or something along those lines. That should give us plenty of leeway to put lots of badniks in our levels.
Back to top
Apostle


Newbie


Joined: 04 Jan 2005
Posts: 31

Posted: 09 Mar 2005 08:26:38 pm    Post subject:

In the older games, the maximum number of rings you could collect after taking damage was about twenty, even if you had like 600 or so at the time. I beleive this was to prevent people from running blindly through the level, since if even sixty flew around, at least one would invariably fly back to you, making it nigh impossible to die. Upon being hit, you could lose all your rings, and only see four/three dropped; each dropped ring should only count as one ring, however.

To save memory, you don't need bouncing rings or anything, but just have them fly off at a random direction slowly. Same basic effect as the other games(the rings are disappearing!). Besides, they are "magic" rings after all, right?
Back to top
koolmansam375


Advanced Member


Joined: 09 Oct 2004
Posts: 254

Posted: 09 Mar 2005 09:37:25 pm    Post subject:

DigiTan wrote:
That Game Gear approach could really work for us.  We'll have to make sure the bouncing rings have some decent collision detection.  Otherwise, it'd be like the Genesis rings that do crazy stuff like get stuck in walls and "fall" uphill (very annoying).

We could try this- have Sonic drop say...up to four rings and each ring represents a quarter of whatever you dropped.  Or something along those lines.  That should give us plenty of leeway to put lots of badniks  in our levels.

how bout we keep it really simple and he no rings fall out when he gets hit. No CPU time lost. Razz Rolling Eyes

well in this case i would say a max of 5 (maybe 6) rings should fall out and each worth one ring
Back to top
AlienCC
Creative Receptacle!


Know-It-All


Joined: 24 May 2003
Posts: 1927

Posted: 09 Mar 2005 09:54:48 pm    Post subject:

Mike_k wrote:
I remeber one of the old sonic games actually DID have extreme slowdown when sonic lost his rings...  oh, and whats up with this forum? It says there is 9 topics under sonic... I'm counting 3

-Mike

Yes, the slowdown would reflect on the game negatively which we certainly don't want.

Also there are indeed 9 topics under this forum, change your filter (drop down box) to "All Time" instead of the default setting which shows only topics containing new posts within the last 30 days.

--AlienCC
Back to top
Display posts from previous:   
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
    » Goto page Previous  1, 2, 3  Next
» View previous topic :: View next topic  
Page 2 of 3 » All times are GMT - 5 Hours

 

Advertisement