Author Topic: "Lost Legends" for 84+, An ASM RPG  (Read 57879 times)

0 Members and 3 Guests are viewing this topic.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
"Lost Legends" for 84+, An ASM RPG
« Reply #240 on: December 05, 2007, 05:28:00 pm »

 THE POST 13554083
yeah i know, I was just having ideas ;)wink.gif


Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #241 on: December 10, 2007, 01:13:00 pm »

 THE POST 13560001
About transparency:

There's only one sprite in the game that actually moves around and displays transparent borders, and that's the main character. Everything else is static. Originally, I wasn't sure how the transparency would be handled. Spikeman suggested that we try assigning one of the grayscale colors as a transparent value. This seems like the easiest solution, as sprite-based games generally go this method anyway. It would only require a few minor adjustments to the sprite, which I could take care of in no time. I just want to make sure this is alright with Halifax and Liazon first.  


Offline Ranman

  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1354
  • Rating: +83/-0
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #242 on: December 10, 2007, 01:24:00 pm »

 THE POST 13560016
You must have been reading my mind.

I was just thinking about this project and voila... an update! :)smile.gif


Keep up the great work guys! :thumbup:google.gif

Ranman
Bringing Randy Glover's Jumpman to the TI-89 calculator. Download available at Ticalc.

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #243 on: December 10, 2007, 01:31:00 pm »

 THE POST 13560028
17 pages and still holding strong. :)smile.gif


Offline dinhotheone

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 410
  • Rating: +2/-1
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #244 on: December 10, 2007, 01:50:00 pm »

 THE POST 13560048
im fairly sure that transparency is not hard, i can do it fine in 3 level B,G,W xlib basic. i think that your method may actually make this harder from a coding perspective. what your talking about is masking its not hard, all you gota do is and a mask a negative silouet of the sprite, so like make a silouet and reverse black with white, then whenever your gona output the sprite, 'and the mask and 'or' the sprite. the 'anding' keeps all the detail of the scenery and clears the area of the sprite so it can be 'or'd. this is how it works in basic i would assume itd be the sameish in asm but then again i have no clue what an interupt is or anything. either way, its been done in every good asm game there is, its not a big deal and shouldnt require narrowing of the pallet

This post has been edited by dinhotheone on 10 Dec, 2007, 19:59


Liazon

  • Guest
"Lost Legends" for 84+, An ASM RPG
« Reply #245 on: December 10, 2007, 02:57:00 pm »

 THE POST 13560116
grendel: are you familiar with regular black and white masking?  the same can be applied to grayscale.

basically, the mask layer is black and white.  black = transparent, white = what's going to get covered.  what happens is that the mask is first applied to what ever is already on the screen and blots out the white area.  then the sprite is put on top.  this is done for both layers.

with this in mind, you can probably make a mask easily i hope.

you can make a modified 3 color version if you want, but keep the 4 level gs one because i'm pretty sure it'll work out fine in terms of masking.  besides, this is an RPG, so it's not to speed critical, considering it's an aligned mapper w/ a moving sprite.  


Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #246 on: December 10, 2007, 04:51:00 pm »

 THE POST 13560271
So, which would be more efficient? I can create a mask, if you want to go that route. I just want to make sure it's not going to require more memory, or slow the game down any.  


Offline tr1p1ea

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 647
  • Rating: +110/-0
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #247 on: December 11, 2007, 12:19:00 am »

 THE POST 13560522
Although masks make your sprites 3bpp instead of 2bpp and do require more work by the sprite routine, it isnt really too taxing on everything, especially if this isnt a smooth scrolling game.

So you're not going to have any animated tiles or NPC's or anything in this game?  


 THE POST    
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."


Offline Ranman

  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1354
  • Rating: +83/-0
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #248 on: December 11, 2007, 12:43:00 am »

 THE POST 13560541
Yeah... As triplea just pointed out... using masked sprites will increase the memory required by the sprite by 50%.

That is one reason I opted to not use masked sprites in UV. The other 2 reasons are: the original does not use masked sprites, and it would not have a profound effect on the visual experience of the game (UV moves a full tile at a time).

If your character sprites move a pixel at a time rather than by a full tile at a time, then masked sprites for them might be a good idea. Else, you would have to redraw the entire screen everytime you move.

This post has been edited by Ranman on 11 Dec, 2007, 7:11

Ranman
Bringing Randy Glover's Jumpman to the TI-89 calculator. Download available at Ticalc.

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #249 on: December 11, 2007, 09:44:00 am »

 THE POST 13561126
Okay, I'm not sure I understand. I'm more oriented toward how actual video games usually handle these routines -- that is, they simply assign a normal palette value as transparent, sort of like you would in a GIF image. I've never heard of masking until I got into TI development.

So it would be more efficient NOT to mask, right?  


Offline dinhotheone

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 410
  • Rating: +2/-1
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #250 on: December 11, 2007, 10:04:00 am »

 THE POST 13561144
yes/sorta, its not that big of a deal but yes, like how monochrome is more efficient and less memory consuming that gscale, however gscale and masking make things look nice. but even this is not a good analogy because masking will not out any noticeable tax on the system. i think the alternative to masking is that the guy just sits on a white tile, which probably wont look to good. i have not ever heard of transparency masking in calc games. also, you only have one thing that this needs to apply to, some games mask 10 things simultaneously.

at its most basic level, masking is just puting out 2 sprites instead of one. the first prepares the tile so that it looks normal, you dont want to be able to see the scenery behind the sprite right? and the second just puts the sprite out there on the prepared location.

as to your question about slowing the game down, it wont be noticeable. if you read what i wrote before, its not anything that requires an artists touch to create a mask, i would leave this part up to the coders. if you still dont know how calculator masking works, just post and ill try to go more indepth or w/e you need, my first post goes fairly technically into it, and if you dont know what 'and'ing or 'or'ing a sprite onto someplace i can explain that too.

This post has been edited by dinhotheone on 11 Dec, 2007, 16:14


Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #251 on: December 11, 2007, 10:31:00 am »

 THE POST 13561171
I understand what masking is and how it works, but I don't understand the speed / efficiency differences between masking, and NORMAL transparency methods. (what I just said in my above post) I don't really understand why simply telling the system that X color value = null / transparent value would be difficult.  


Offline JonimusPrime

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 389
  • Rating: +25/-5
    • View Profile
    • Jonimoose.net
"Lost Legends" for 84+, An ASM RPG
« Reply #252 on: December 11, 2007, 11:18:00 am »

 THE POST 13561254
It is difficult be cause that isn't how grayscale displaying works. the second method would still need a masked sprite but it would be generated when the sprite is displayed instead of already being there that is the only difference.  


"Always code as if the person who will maintain your code is a maniac serial killer that knows where you live" -Unknown

"If you've done something right no one will know that you've done anything at all" -Futurama

"Have a nice day, or not, the choice is yours." Tom Steiner

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
"Lost Legends" for 84+, An ASM RPG
« Reply #253 on: December 11, 2007, 11:38:00 am »

 THE POST 13561273
Uh, huh? o.oblink.gif

This is what I'm talking about:

user posted image

This post has been edited by grendel on 11 Dec, 2007, 17:50


Liazon

  • Guest
"Lost Legends" for 84+, An ASM RPG
« Reply #254 on: December 11, 2007, 11:51:00 am »

 THE POST 13561297
using a color as transparent is generally a console/handheld only thing because they have graphics hardware displays the color as transparent for them.

since few people use gs, there's no real standard.

you have to keep in mind that grayscale data is stored kinda like this:

.db 00001111
.db 00110011

That right there controls 8 pixels.  so basically, if the bit is 00 in both bytes, it's white.  if the bit is 11 in both bytes, it's black.  then either or gives the two values of gray.  it's kinda difficult to specify one color unless you look at both bytes, which most routines don't.  they kinda process one at a time.  i think what some people might do is generate a mask from one of the other or both layers.  or they might use one of the inverted layers as the mask itself.

i personally like using separate masks.