Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Halifax on December 09, 2006, 11:19:00 am

Title: The Massacre
Post by: Halifax on December 09, 2006, 11:19:00 am
This is my premiere game taking lead over ROE. I have been heavily thinking about developing this for some time now. It is also not called massacre for no reason...

Background:
This game is on the life of an ex-marine who fought in the space war of 2010(civilization has made a great advance since 2006). His mind has been messed with a lot over the years of war and he has become subject to many mental challenges. He believes that everybody is out to get him and he is still fighting in the war of 2010. Equipped with his rudementary tools, a chainsaw, machine gun, and knife, he begins his mission to take out all the aliens with no prisoners held.

This game is based heavily on blood. There will be much to see in terms of the blood effects so if you are into heavy violence then this game will be for you.

NEWS for DCS6 users:
Also I am thinking about making this exclusive to DCS6 only for the mouse routine use with the in-game menus, but if DCS6 is not done by then then I will just have to make my own mouse routine and realese it under MOS.
Title: The Massacre
Post by: DJ Omnimaga on December 09, 2006, 11:34:00 am
that sound pretty nice, will this be top down perspective view or platformer?
Title: The Massacre
Post by: Halifax on December 09, 2006, 11:44:00 am
It will be top down perspective view, and I will be making some mock-ups of how it should look very soon.
Title: The Massacre
Post by: elfprince13 on December 09, 2006, 11:57:00 am
QuoteBegin-Halifax+9 Dec, 2006, 17:19-->
QUOTE (Halifax @ 9 Dec, 2006, 17:19)
NEWS for DCS6 users:
Also I am thinking about making this exclusive to DCS6 only for the mouse routine use with the in-game menus, but if DCS6 is not done by then then I will just have to make my own mouse routine and realese it under MOS.  

 post this on cemetech, kerm will probably give you a big hug.

wootz for DCS
Title: The Massacre
Post by: DJ Omnimaga on December 09, 2006, 12:00:00 pm
aaah sound cool :Dbiggrin.gif, well at least I'm glad people are taking advantage of DCS routine now :Dbiggrin.gif

Kerm do visit here too sometimes though so he may see this here too
Title: The Massacre
Post by: Halifax on December 09, 2006, 12:11:00 pm
Ummm you know what would be very helpful is if someone could make some 16x16 b/w sprites of a somewhat muscular man with a vest on and his arms showing. Something along that lines would make me so greatful.
Title: The Massacre
Post by: DJ Omnimaga on December 09, 2006, 12:47:00 pm
i think you should also post the request in the sprite forum, ;)wink.gif else ppl may miss it here x.x
Title: The Massacre
Post by: kalan_vod on December 09, 2006, 01:08:00 pm
Sounds cool, although I don't like the exclusive shell deal. Real men make their own routines ;)wink.gif
Title: The Massacre
Post by: KermMartian on December 09, 2006, 06:25:00 pm
Yay! Very glad to hear this, Halifax.
Title: The Massacre
Post by: DJ Omnimaga on December 10, 2006, 02:33:00 am
I think the mouse routine should be made so ppl who don't have a mouse hooked to their calc and use keypad should have acceleration, so it wont take several seconds to scroll from one side of screen to another.
Title: The Massacre
Post by: KermMartian on December 10, 2006, 03:22:00 am

Anyway, the mouse routine doesn't require a hardware mouse at all... and yes, it already has an acceleration system built in.
Title: The Massacre
Post by: DJ Omnimaga on December 10, 2006, 03:30:00 am
it didnt accellerated for me o.oblink.gif it still went at the same speed than in doorCS 5. I'M using TI-83+ and SE with OS ranging from 1.12 to 1.18 btw.
Title: The Massacre
Post by: Halifax on December 10, 2006, 09:32:00 am
Ok my site is up now http://psugen.freehostia.com and I will be posting updates there when I do not have time to access omnimaga. Also visit the site if you want to be a part of Psugen Studios !!!!

NOTE: If trying to accees the Psugen site manually then do not type in a www. or a http://
Title: The Massacre
Post by: DJ Omnimaga on December 10, 2006, 10:16:00 am
*xlibman
Title: The Massacre
Post by: Halifax on December 10, 2006, 10:39:00 am
lol no Im just saying because I can't go on forums in school because they get blocked but I can go on my site so if Im not able to get home and post it on omnimaga then it will at least be on my site
Title: The Massacre
Post by: DJ Omnimaga on December 10, 2006, 10:49:00 am
aaah i see what you mean now. x.x
Title: The Massacre
Post by: Halifax on December 28, 2006, 09:34:00 am
Finally an update after heavy development on custom routines is a screenshot of The Massacre walking routine.

user posted image

Comments?? Too fast??Too slow(yeah right haha)??
Title: The Massacre
Post by: Spellshaper on December 28, 2006, 09:44:00 am
omg fast. screen. blurry.
Title: The Massacre
Post by: Halifax on December 28, 2006, 10:01:00 am
a simple 83+

Note:I could make it even faster if I didn't update the tilemap every single time the guy moves :)smile.gif
Title: The Massacre
Post by: Liazon on December 28, 2006, 01:57:00 pm
add masking, that oughta slow it down some more
Title: The Massacre
Post by: Halifax on December 28, 2006, 02:09:00 pm
It is masking. I guess it is just me and Jon's leet coding that made it so fast haha ;)wink.gif j/k j/k.
Title: The Massacre
Post by: DJ Omnimaga on December 31, 2006, 10:44:00 am
wow nice so far, I like the sprites!
Title: The Massacre
Post by: Halifax on December 31, 2006, 11:51:00 pm
Here's an update screenshot:

user posted image

@xlibman: srry xlibman but these aren't gameplay sprites :(sad.gif they are just test sprites to show the engine.

And this screenshot shows all our latest work with tilemaps,walking,sprite routines, and hit detection. And it works yay!!! Now we got to add some scrolling tilemaps and combat stuff or more tiles and a demo program mayb on the way.
Title: The Massacre
Post by: DJ Omnimaga on January 01, 2007, 04:38:00 am
link is broken :(sad.gif

EDIT: YAY works now. I like it so far.
Title: The Massacre
Post by: Liazon on January 01, 2007, 10:30:00 am
nice  :thumbup:google.gif
Title: The Massacre
Post by: graywolf on January 01, 2007, 10:39:00 am
Looks good! Smooth movement...  :king:king2.gif
Title: The Massacre
Post by: Halifax on January 01, 2007, 12:43:00 pm
thanks for all the support so far guys
Title: The Massacre
Post by: DJ Omnimaga on January 08, 2007, 12:19:00 pm
how is it progressing? and dont worry I'm gonna make a forum for this project asap
Title: The Massacre
Post by: Jon on January 18, 2007, 06:21:00 pm
Jon Cries
For my hateful behavior on IRC, and insubordination towards leadership, I have been booted from Psugen Staff.  Though the action was most certainly justified (I insultingly rewrote the NPC routine, talked a bunch of crap behind Halifax's back, and I horribly overstepped my former job as routine programmer :banghead:banghead.gif ), I am still asking to be forgiven.   :(sad.gif  It is easy to see why halifax had a growing paranoia of me stealing his project, being that I posted on Maxcoderz without his consent.  I just want him and everybody else to know that The Massacre is HIS project, not mine, and I would never steal it.  I just hope he will allow me to help out here and there, as it is the coolest project I have ever seen.  And whether I'm allowed to help out again or not, I wish the best of luck on The Massacre. XDsmiley.gif
Title: The Massacre
Post by: DJ Omnimaga on January 19, 2007, 02:16:00 am
It's good to see you are apologising. I think halifax should be forgiving, providing the same thing wont happen again ;)wink.gif . We all do mistakes btw. *xlibman
Title: The Massacre
Post by: Halifax on January 19, 2007, 09:20:00 am
its been progressing slow but progressing because of the recent midterm deluge from my high school if you know what I mean. Anyways I have been working on a search camera and other things like adding to the NPC system. I am expecting to put up some small updates this weekend and then maybe some bigger ones next weekend but believe me this project will never die

note: Jon and I have never been in bad terms on my side
another note:Let's try to stay away from personal stuff in this forum thread as it is strictly game talk
Title: The Massacre
Post by: DJ Omnimaga on January 19, 2007, 02:15:00 pm
i'M sry i didnt meant to be bad, I was just worried, in case a fight would happen at one point, I am glad the thing with the game was solved. Now back to game discussion I'm glad it's not dead :)smile.gif
Title: The Massacre
Post by: Jon on January 19, 2007, 04:54:00 pm
Hmm, a camera sounds like a cool idea.  What do you have so far?  One possible concept would be backing up the current tilemap coordinates, so you could use the same camera routine to return to the original place and continue gameplay.
Title: The Massacre
Post by: Halifax on January 20, 2007, 04:23:00 pm
Well I actually have technically had this screenshot for 2 weeks or so but I could get into my hotmail account and after downloading IE7 which didnt work and hotmail doesnt work with FF I had to reinstall Windows 3 times just to get IE6 back anyways here's the screenshot

user posted image
Title: The Massacre
Post by: trevmeister66 on January 20, 2007, 04:32:00 pm
nice  :king:king2.gif
Title: The Massacre
Post by: CureDesu on January 20, 2007, 04:39:00 pm
Looks good.  Are those black bars/blocks supposed to be there, or is the emulator displaying it wrong?
Title: The Massacre
Post by: trevmeister66 on January 20, 2007, 04:41:00 pm
i think they are going to be NPC's? :???:confus.gif
Title: The Massacre
Post by: Halifax on January 20, 2007, 04:44:00 pm
Yeah they are supposed to be TEST NPC's and actually that routine for NPC's will not be used but its in there for now
Title: The Massacre
Post by: trevmeister66 on January 20, 2007, 05:21:00 pm
yeah i need to get a NPC routine for my game.  <_<dry.gif
Title: The Massacre
Post by: Halifax on January 20, 2007, 07:39:00 pm
its actually very simple in basic just use your hit detection routine. Make a flag to distinguish an NPC in your matrix map data like 12.2 where .2 shows it is an NPC not just a tile. And then in your hit detection routine write some code like fpart(matrixnum and go from there
Title: The Massacre
Post by: trevmeister66 on January 21, 2007, 03:21:00 am
o i never thought of that. Thanks man  :)smile.gif
Title: The Massacre
Post by: DJ Omnimaga on January 21, 2007, 05:09:00 am
wow amazing as always! but why does map scroll so fast? O_Oshocked2.gif
Title: The Massacre
Post by: Jon on January 21, 2007, 05:34:00 am
That's because it is going tile-by-tile, but once it has to recall an appvar each time (there's a chance we will be storing external maps in appvars) it will be slowed to a much less frantic pace.    %)rolleyes2.gif
Title: The Massacre
Post by: Liazon on January 21, 2007, 07:07:00 am
you could just use saferams and the "malloc" trick
Title: The Massacre
Post by: Jon on January 21, 2007, 07:22:00 am
QUOTE
you could just use saferams and the "malloc" trick


what's the malloc trick?
Title: The Massacre
Post by: Liazon on January 21, 2007, 07:57:00 am
use the ROM call _insertmem @ $9d95 and then use _deletemem when you're done.  both are described in TI's routines guide.
Title: The Massacre
Post by: Halifax on January 21, 2007, 01:13:00 pm
News: The Massacre will be made into an Application now. Well already has been and is up and working !!! What do you guys think would you rather see it in Application form or MOS/ION form??
Title: The Massacre
Post by: Liazon on January 21, 2007, 01:35:00 pm
Apps are always good!  Just make sure you take up whole pages!!!! :)smile.gif or there's wasted space.  regular 83+BE have few pages available to the user.
Title: The Massacre
Post by: Delnar_Ersike on January 21, 2007, 01:38:00 pm
*Delnar_Ersike
Title: The Massacre
Post by: Halifax on January 21, 2007, 01:44:00 pm
user posted image

Here is an image of it using Massacre as an APP. As you can see it is clearly the same and as fast as stub version.
Title: The Massacre
Post by: necro on January 21, 2007, 02:07:00 pm
cool to hear, did you know psugen studios doesn't work?
Title: The Massacre
Post by: DJ Omnimaga on January 21, 2007, 02:21:00 pm
mhmm yeah in your sig it doesnt, it seems to hate the www

in the affiliates it seems to work tho
Title: The Massacre
Post by: CureDesu on January 23, 2007, 01:40:00 pm
Looks good so far.  Hope this turns out great.  The 83+ series and it's brethren have a sore need for good action games.  :)smile.gif
Title: The Massacre
Post by: bfr on January 23, 2007, 01:51:00 pm
That looks pretty good!  :)smile.gif
Title: The Massacre
Post by: trevmeister66 on January 23, 2007, 01:53:00 pm
pretty good? That look DAMN good.  :king:king2.gif
Title: The Massacre
Post by: graywolf on January 23, 2007, 01:55:00 pm
Good to see that it's as fast as ever! :)smile.gif
Title: The Massacre
Post by: Delnar_Ersike on January 23, 2007, 04:00:00 pm
There's only one problem with the speed...you'll have to make bullets move faster than the char! :Ptongue.gif
Title: The Massacre
Post by: trevmeister66 on January 23, 2007, 04:02:00 pm
how many sprites you have just for the character? :???:confus.gif
Title: The Massacre
Post by: Halifax on January 24, 2007, 07:27:00 am
Only 16 sprites ;)wink.gif 2 frames for each direction and then corresponding masks for those 8 frames which makes 16 in all. And believe me bullets will go faster.

Thanks for all the support to guys it really makes you want to work :Ptongue.gif
Title: The Massacre
Post by: Speler on May 06, 2007, 04:42:00 am
Any progress here?  I was really looking foward to this game and would hate to see it die.
Title: The Massacre
Post by: Halifax on May 06, 2007, 02:51:00 pm
It definetly isn't dead there just hasn't been progress. School is a time sucker, but summer is coming up, and then there are the weekends when I work so that's all. Nothing is dead. Believe I will be working on this over the summer.
Title: The Massacre
Post by: Speler on May 06, 2007, 03:03:00 pm
That's good to hear.
Title: The Massacre
Post by: Halifax on May 14, 2007, 09:20:00 am
Ok I think it's time you guys no a little bit of what I have been thinking of because I have been thinking seriously in this time that I have gotten off. First off I have decided to make this my PRIMARY project over the summer and that will not change. Secondly is an advancement in the graphics aspect of this game so hear it goes.

I was sitting around one dark and dreay night staring at Jim_e's tilemapper code, a modified version of Dwedit's but faster, and I was thinking. Crap this goes really slow when you have 255 tiles because you have the shift 2040 bytes. So I was like how the hell can I make this faster! Well I have come up with two plans that may or may not work because I have not timed them out yet.

1. Well let's say we can cut down how many tiles it has to shift. I have come up with a plan to find out the 96 tiles, 12x8, that the tilemapper will be mapping. Then all you have to do is shift 96 or less tiles instead of 255 tiles. So that should be a great speed boost although the process of making sure there are no duplicates is very hard although I will try.
2. Well if the offset that the tiles will be shifted is 7 them that's going to take a d*** long time to shift all of those tiles to the left. So then I got an idea why not split them. If the offset is between -3 then start in the left byte and if it is between 4-7 then start in the right byte. So it's like this

Offset between -3
---- shift right
%11111111,%00000000

Offset between 4-7
<------ shift left
%00000000,%11111111

So that means that there will only be a maximum of 3 shifts or less to do then 7 or less. I think these will do a considerable job in speeding up the process of the smoothscrolling tilemap.

I will begin dissection of Jim_e's cryptic code tonight o.oblink.gif
Title: The Massacre
Post by: Speler on May 14, 2007, 09:23:00 am
Yay!  The Massacre is back!
Title: The Massacre
Post by: graywolf on May 14, 2007, 12:54:00 pm
I can't wait for more screenshots! :)smile.gif
Title: The Massacre
Post by: Halifax on May 14, 2007, 02:19:00 pm
Screenshot wh***s haha j/k. Anyways I don't know judging on the amount of time that I have to dissect this code and then write my own that is App friendly then I may have screenshots for next week or something, I am sorry to say but I most definetly don't like Jim_e's use of SMC gah!
Title: The Massacre
Post by: Jon on May 14, 2007, 02:24:00 pm
here's what you do
make jim_e's code an inc file, and .org it to $9d95, then at runtime, copy the code to $9d95, and then call it.  Then it'll be in RAM, and can use SMC as needed.
PS: make sure you clear out $9d95-$bfff before exiting the app, or bad things will happen.
Title: The Massacre
Post by: Halifax on May 14, 2007, 02:26:00 pm
Yeah I know about that process, but first off I don't think you have read the post up the page a little further. I am not using his code at all in fact. I am just studying it and them making my own smoothscrolling tilemapper for a number of reasons. The special clipping I will need to do, animations, and integration. So I am just making an app compatible smoothscrolling tilemapper, maybe later I will convert it to SMC.
Title: The Massacre
Post by: Jon on May 14, 2007, 03:09:00 pm
ah, i see now
Title: The Massacre
Post by: Halifax on May 16, 2007, 02:44:00 pm
I have to give props to Jim_e this is some of the easiet to read and most effcient pieces of code I have ever seen although some parts really got me stumped and I had to get down to the dirty part of all of the bytes of commands :(sad.gif That was not fun, but it's alright I got through it and dissected it fully. Things are running smoothly and I have went on to start writing my own app-friendly tilemapping routine. So with how it's going I am definetly thinking it will be posted by this weekend or week.

I am currently on to writing the tile detection routine that detects all the tiles that are going to be written to the screen.
Title: The Massacre
Post by: Fallen Ghost on May 16, 2007, 03:44:00 pm
App tilemapper that goes real fast? You got me interested here...

If you need any help, I'll be very willing to give some of my time.

12 height or 12 wide? cause 12 wide is pretty strange and non-efficient, 16 wide would be better, but in case you meant 8 wide, then it's good. still 16 could be more efficient if it was possible.
Title: The Massacre
Post by: Jon on May 16, 2007, 09:57:00 pm
I'm interested too :Dbiggrin.gif
An app-friendly tilemapper! How could one not be interested??
Title: The Massacre
Post by: calc84maniac on May 17, 2007, 02:10:00 am
12 wide isn't strange, it's THE WIDTH OF THE SCREEN. :rolleyes:rolleyes.gif
Title: The Massacre
Post by: Liazon on May 17, 2007, 04:58:00 am
i think Fallen Ghost was talking about tile sizes and Halifax was talking about the screen.
Title: The Massacre
Post by: Halifax on May 17, 2007, 08:29:00 am
Sorry I don't know what you guys are talking about seriously...when did I mention 12? The tile size if definetly 8 so far... dun dun duh haha. Really I intend on making a 16x16 tilemapper that is app-friendly. But basically why I am making this 8x8 is for tile manipulation. I *WANT* to have map deformation which would call for having 2 16x16 tiles for one being deformed and one not. But if I have 4 8x8 tiles making up a 16x16 tile then I can change one to make it deformed so that 40 bytes to 64 bytes. That is my only reason for using a 8x8 tilemapper, but if I decide I don't want deformation then I will have the 16x16 tilemapper there just in case.

@Fall_Ghost: Haha it's funny you say that because you usually are the first one I come to for anything about apps. But yeah I will probaly need you for the 16x16 app-friendly tilemapper, but so far I have like half of the 8x8 tilemapper code working in an app and debugged fine.

Oh yeah and I am keeping this on the same track so both the 8x8 and 16x16 tilemappers will be open-source!

wow and I never knew app-friendly smoothscrolling tilemappers were so special. Aren't there already like a couple out there??
Title: The Massacre
Post by: Fallen Ghost on May 17, 2007, 01:32:00 pm
Oh, you were talking about width in bytes, not in bits. That answers my question!

Anyway, I'm interested in it cause I'll probably port it from 8*8 (all in bits dimensions) to a clipped 16*X version supporting less features but including special other specific things. But smooth-scroll will definitely be a nice option.

Oh, it would definitely be nice if I could get a link to Jim_e's tilemapper... I might even just copy parts to ram and such, to make it easier.
Title: The Massacre
Post by: Halifax on May 17, 2007, 03:30:00 pm
I don't have a link because I forget where I got it from. It has been sitting on my HD for like 1 1/2 years or something. But anyways I am making an SMC and app-friendly version.

16*x would be awesome but I don't know I have been thinking about it. For a 16x16 or 16*x tilemap or anything to do with 16 in the style that Jim_e/Dwedit does it would take 3 buffers equal in size to the tilemap buffer. Which would mean 2 16x16 tiles would require 256 bytes which is pretty harsh just for two tiles.

I would try and think of a new method of tilemapping.
Title: The Massacre
Post by: Speler on May 17, 2007, 03:42:00 pm
By the way, once school is over I'll finish making the titlescreen.
Title: The Massacre
Post by: Fallen Ghost on May 17, 2007, 03:48:00 pm
By 16*X I meant the size of things in bits. When it comes to sprite I say in bits, or if I specify in bytes, but most likely bits.

If you prefer, 16 bits wide*X bits high per tile (probably 14-16, what crappy numbers) and near 15-20 tiles max.

The total amount of tile in 1 map should be what, 128*64... 8192 bytes, but 4092 if we compress. lol, ok, maybe not.

No tilemapper for SC until I reduce map size.

But I still give you my help for the tilemapper.

If you have a copy of Jim's tilemapper on your computer, can you pm it to me? http://www.unitedti.org/index.php?showtopic=2370&view=findpost&p=91667
Title: The Massacre
Post by: Halifax on May 17, 2007, 04:06:00 pm
Yeah I am talking about bits. And you can have 255 tiles. And a 16x16 tilemapper with 255 tiles would be.

255*256 = 65280 bytes. Which is very unusable, but 255 8x8 tiles would be

255*24 = 6120 bytes. So basically I could have 765 tiles that only take up one page and a little more(I won't have that many) And then I will be fine. So I think that is one reason I will stick with 8x8 because it is more versatile.
Title: The Massacre
Post by: Jon on May 17, 2007, 04:22:00 pm
Halifax, you should get on IRC more often.
Title: The Massacre
Post by: Halifax on May 18, 2007, 10:51:00 am
No time really I do all my work in school study halls or something like that. Otherwise I get home have basketball or guitar practice until like 6 then I have to do my homework which usually takes 2 hours since it is the end of the year. After that I really don't feel like doing anything so I go to sleep or stay up for an hour and then go to sleep. So basically I won't be on IRC until the summer.
Title: The Massacre
Post by: bfr on May 18, 2007, 11:10:00 am
OK, somewhat understandable.

You could just do what I often do, and try to get on IRC Friday-Sunday.  ;)wink.gif
Title: The Massacre
Post by: Halifax on May 18, 2007, 05:07:00 pm
I have been making full weekend trips to Virginia for the past two weeks to pick up cars from my brother and his girlfriend who are moving to Miami and we are going down this weekend again for the Pontiac. So I will stick to thr forums.
Title: The Massacre
Post by: Halifax on May 20, 2007, 02:51:00 am
It seems that I have run into a problem with this routine and it is p***ing me off very much. I will have to iron out some stuff with Fallen_Ghost and see if he can help. Oh well for all the people who want to write their own mods to Jim_e's tilemapper and can't understand can use this. It would be best if you copied this into a notepad so the comments turn out better.

c1-->
CODE
ec1
;This source is fully commented out so that even a total n00b could understand this.
;If any questions still arise =) then just email me: [email protected] for more info
;###################################################################################
;Fastcopy + Horizontal + Vertical Scrolling Tilemap by Jim e || Comment out like a n00b by Halifax
;Based on dwedit's mapper
;Messuptiles is 50% faster
;The mapper is 14% faster.
;Like it needed to be faster;)
;
;
;Input:
;
Title: The Massacre
Post by: bfr on May 20, 2007, 04:01:00 am
I've used this routine before.

Read the directions carefully.  

mapAdress:
 .dw addressOfMap

tilesAdress:
 .dw addressOfTiles

Note how Jim E. says (tilesAdress), not tilesAdress.  :)smile.gif
Title: The Massacre
Post by: Liazon on May 20, 2007, 04:13:00 am
for sure it's a pretty flexible routine since you can choose

1) where you want your screenbuffer to be
2.)which map to read
3.)what tileset to use
4.)how wide the map is

The only bad thing is that the number of tiles in the set is constant, so you'd waste time rotating nothing even if you have less tiles than your max.  probably could be fixed with a little SMC and multiplication :)smile.gif

Good Job
Title: The Massacre
Post by: Halifax on May 20, 2007, 08:04:00 am
Yeah bfr you could do that or you could do it the way Jim_e showed it in his demo.

tilesAdress = saferam

...
ld hl,tileset
ld (tilesAdress),hl
Title: The Massacre
Post by: bfr on May 20, 2007, 08:19:00 am
So does that mean you got it working?
Title: The Massacre
Post by: Fallen Ghost on May 25, 2007, 02:58:00 pm
I've been on a bit of a break because of school recently, but I'll test it like it is now. (or I'll try).

Destructible tileset buffer means you need to ldir all your tileset from it's originial location or just a buffer equal in size?

Great, I'm a noob using tilemappers so I need a little course of how to use it. Then I'll debug.

1)what is the format for the tilemap? (not the tileset, I talk about the thing that represents each tile on the map) Is it 1 byte/tile? (I guess so, but just to be sure)

2)hell, what a brick to read. I love comments, but less would not be a big matter. I know it's better with complete sentences and all, but we aren't stupid neither. Oh and please, next time you show up code, do us a favour and separate your code of comments with at least 5-10 spaces (horizontally) so that semicolon isn't the next char after the instruction.

And it would be fun to differentiate routines of code continuations (like a big header of "now my code is multiplying, no more bit shifting, just additions" would be replaced by "[instruction].....;multiplications here")

But those are no debug logs, so I'll run up and check it out now.

[looking at code]
3)messing up tiles and finding rotations? what? kk, save tiles and change bit positions according to X.

4)from what i've seen, tilesbuf2 is the buffer where the byte+inverted mask is, so that you know where you can write and where you cannot for the other rotated+clipped tilesprites can be applied. But how come 2 tiles would overlap in any way?
Title: The Massacre
Post by: Halifax on May 25, 2007, 04:39:00 pm
As I stated it was commented for a n00b. Obviously I do not really comment like this alright ;)wink.gif . Secondly maybe you should do a trace of the routine and that will provide you with a good understanding, Thrid off the routine needs no debugging it works, Fourthly I need to talk to you about an effcient way to search for tiles and... so on, but I would rather talk to you in realtime because it is a little more than a little explanation. So you have any realtime contacts at the moment??
Title: The Massacre
Post by: Liazon on May 26, 2007, 03:28:00 am
QuoteBegin-Fallen Ghost+25 May, 2007, 20:58-->
QUOTE (Fallen Ghost @ 25 May, 2007, 20:58)
I've been on a bit of a break because of school recently, but I'll test it like it is now. (or I'll try).

Destructible tileset buffer means you need to ldir all your tileset from it's originial location or just a buffer equal in size?

Great, I'm a noob using tilemappers so I need a little course of how to use it. Then I'll debug.

1)what is the format for the tilemap? (not the tileset, I talk about the thing that represents each tile on the map) Is it 1 byte/tile? (I guess so, but just to be sure)

2)hell, what a brick to read. I love comments, but less would not be a big matter. I know it's better with complete sentences and all, but we aren't stupid neither. Oh and please, next time you show up code, do us a favour and separate your code of comments with at least 5-10 spaces (horizontally) so that semicolon isn't the next char after the instruction.

And it would be fun to differentiate routines of code continuations (like a big header of "now my code is multiplying, no more bit shifting, just additions" would be replaced by "[instruction].....;multiplications here")

But those are no debug logs, so I'll run up and check it out now.

[looking at code]
3)messing up tiles and finding rotations? what? kk, save tiles and change bit positions according to X.

4)from what i've seen, tilesbuf2 is the buffer where the byte+inverted mask is, so that you know where you can write and where you cannot for the other rotated+clipped tilesprites can be applied. But how come 2 tiles would overlap in any way?

IIRC, it's kinda been awhile sorry.

0.)
i'm pretty sure (tilesaddress) can be in ROM, but you need buffers of equal size in RAM somewhere.  I'm pretty sure iirc that the routine just reads the tiles from their source and saves the modifications in the buffers.

1.)
ya, 1 byte per entry, so 256 tiles max.  117 or less is the most efficient.  Anything above will seriously lose to a planeshifting tilemapper iirc.  Still, I can't imagine needing so many black and white tiles since you could always  change the tileset address that the routine reads from.

2.)
well, I do admit I wish that forum code boxes had syntax highlighting, but  


http://www.revsoft.org/phpBB2/viewtopic.php?t=644&start=0  

3+4.)
The concept behind this tilemapping technique is based on around the idea that an unaligned sprite will ALWAYS take up 2 bytes (if it's aligned for a moment, you can still say the second byte is %00000000).  If you look at ionputsprite, you notice that it too must split the sprite into it's two parts through rotations before it can write to the buffer.

Jim e just applied that to the tilemapper by pre-shifting EVERY TILE into it's two parts and saving one part in one buffer, and the other part in another buffer.  When it comes time to write, all you need to do is take the second part of the first tile and XOR/OR it with the first part of the tile next to it.  It's like putting unaligned sprites next to each right next to each other.  They both must share bits in the same bytes, the ones in the middle.

Hope that helps.

I'm pretty sure the only way to really use this in an app right now is to copy into reserved $9d95 space.
Title: The Massacre
Post by: Fallen Ghost on May 26, 2007, 04:06:00 am
routine (or what I understand of it):

1)rotate all tiles from tileset into buf1 and buf2 (named after their according byte from sprite
2)fetch what tiles are used and what height/width of them is taken to fetch good bytes
3)bitwise OR with two tile parts into acc
4)out to LCD data port

I just copied the code in ZDS and everything looks way better with colours

Wasn't it supposed to be an app-friendly tilemapper using no SMC?

I'm very loaded up with school but just give me a time and I'll probably be there. Like tonight 6-10 GMT-5?

[Edit]there are 2^64 possibilties for a 8*8 tile so I guess you can have alot and alot of them

a tilemap of 16*16. isn't that a bit small for a complete map?  
Title: The Massacre
Post by: Halifax on May 26, 2007, 04:50:00 pm
16x16. That is not the max tiles the tilemap can be???

Don't you guys read my posts at all?? I think I remember clearly stating I am posting a commented out source so that other people can understand it faster and mod it.
Title: The Massacre
Post by: Fallen Ghost on May 27, 2007, 01:52:00 am
I know tilemaps are really bigger than that but you seemed to say it was the max size.
Title: The Massacre
Post by: Liazon on May 27, 2007, 03:08:00 am
no i mean't since the map is an array of 1 byte entries, you can only have a tileset of 256 tiles in Jim's mapper.

the idea is that a 64x96 pixel screen can only show 8x12 8x8px tiles, which is 96 tiles on the screen.  Now most of the time, tiles get reused in order to create graphical structures like roads, trees, building, etc.  If they are going to reappear multiple times, there is no point in rotating the same tile every time it appears.  you might as well rotate them once and simply copy the prerotated data into where it goes.

This works the best when you have less tiles in your world (ie, Digitan's Robot Wars actually only uses 32 tiles max in each level)  When you have less tiles than 96, the chance that you reuse the tile is higher.  If you have to reuse tiles, then messuptiles is more efficient than ionputspriting in a loop, and probably more efficient than planeshifting.

I thought 96 was ideal, but for some reason Jim documents 117 or less as the most efficient, but that's probably using a direct comparison of t-state usage between all the other methods and Dwedit's original messuptiles mapper.

I know StarCalc will probably use a lot of tiles, so maybe messuptiles isn't ideal for what you need FallenGhost.  I don't know.  Like I said, this just one of the methods of tilemapping I've seen.
Title: The Massacre
Post by: Fallen Ghost on May 27, 2007, 12:01:00 pm
Thanks alot for enlightening the subject.

Uh, as the maps are 128*128 (16*12 pixels), I don't plan to add mapping so much because it will take too much space.

I rush like hell to add vital functions such as attack move (come on, that's essential) without lag.

The thing that takes the most time for now is the map exploration, so maybe that'll be the thing that goes off... sadly (let's say 200 times putspriteclip (sigma's) is long to do)

but if I remove map exploration, maybe I might be able to add a tilemapper with the space saved. I'll probably use something like 32 tiles too.
Title: The Massacre
Post by: Liazon on May 27, 2007, 03:19:00 pm
Well the reason why Digitan only uses 32 is because he uses tmap20 by CrashMan, which is an uber optimized version of Jim and Dwedit's messuptiles mapper.

It's so uber optimized that you can only use 32 tiles at most, you have to use buffers that start on an address like this: $XY00 where  X and Y are digits.  Most importantly, the buffer is vertically aligned.  That means adjacent bytes in memory represent vertically adjacent groups of 8 pixels on the screen.  In other words, very difficult to use, but extremely fast, which really gives digitan a lot of clocks to work on physics based stuff.

It sounds like you've got a plan though.  
Title: The Massacre
Post by: Halifax on May 27, 2007, 05:28:00 pm
Yeah that is the part I hate about Crashman's routine is that it is column major not row major.
Title: The Massacre
Post by: Fallen Ghost on May 28, 2007, 02:35:00 pm
I didn't know of th downfalls of it but sure knew it went very very fast for a small 32 tiles (in case just change the set between maps).

I have to use buffers that use strange addresses, ok, well, I guess that's not much of a problem, just do all your bcalls, then transfer some of TI's code in ram to other useless spaces (like some unused rampant asm spaces), then re-transfer them back before bcalling again.

And if I understand, X and Y are flipped up. Ok, fits alot better with LCD port. Why not? Now you just got to figure out some things like drawing characters and stuff over it before it draws, but it's now much more easy! Whatever I'll find it out when I'll use it.

Now back to subject Halifax, what did you need to iron out with me for the code? (can be via pm)  
Title: The Massacre
Post by: bfr on June 02, 2007, 08:52:00 am
Does anybody have a link to Crashman's tile-mapping routine for the TI-83+/TI-84+?  I found http://62.65.69.4/archives/files/fileinfo/178/17880.html, but it is for the TI-82.  Would it work on the TI-83+/TI-84+ too?

Relating to the Massacre...wasn't it originally in BASIC+xLIB?  Will the BASIC+xLIB version ever be finished?
Title: The Massacre
Post by: Halifax on June 02, 2007, 11:39:00 am
Crashman's routine was made for TI-82 yes. It won't work on 83 or 84 because it needs a little modification(shouldn't be hard).

Yes it was originally BASIC+xLIB. Simply put...H*** no. There would be no point in finishing it since XBASIC can not match up to ASM when it comes to action games.

Anyways there are no updates for the Massacre because I have been busy with finals which SUCK. Some good news is that I tested out(I won't have to take it next year) Computer Concepts 2, and Advanced Programming Techniques since they were both about C++ programming. So I have to take this philosophical type of computer course next year about optimization and how to figure out optimizations on high-level by the low-level x86  assembly. After that in my junior year it is on to my college computer courses!!!!!! :)smile.gif
Title: The Massacre
Post by: bfr on June 02, 2007, 12:58:00 pm
Cool.  I'm kind of mad that my parents (mostly my mom) set up my schedule (they kind of forced me to choose certain courses) so that I wouldn't be able to take ANY programming courses in high school.  :(sad.gif  I hope I don't fall behind in computer programming....  I might be able to take an online course, though....
Title: The Massacre
Post by: Halifax on June 02, 2007, 02:13:00 pm
Hmmm that's not good. Have you told them that you can get full-paid scholarship for computer programming. That's what I told my parents and now they want me to go on with it. That's why they want me to get into those college courses. I have no problem with that ;)wink.gif lol.
Title: The Massacre
Post by: Halifax on June 07, 2007, 03:10:00 pm
After a quick hack of about 10 minutes I made support for animation in the tilemapper. It is variable animation which means you can have 1 frame for some tiles and 2-infinity frames for animated tiles. I show this in the screenshot by making a black and white tile for the one area and keeping the brick sprite for the other. So there is only one animated tile in this screenshot. I will later add support for multiple frame animations so you can have 2 frame, and 5 frame, and w/e all in one tilemap.

As I said this was a quick hack so I will optimize it and implement the stuff above before releasing the source code.(And embarassing myself with it lol).

Well for your non viewing pleasure :(sad.gif , because PTI grayscale screenshot taking sucks.

user posted image
Title: The Massacre
Post by: Speler on June 07, 2007, 03:13:00 pm
Wow, nice job!
Title: The Massacre
Post by: Fallen Ghost on June 07, 2007, 03:51:00 pm
Great! Seems much like the original video Jim_e posted with his tilemapper, but ported in PTI greyscale.

*Fallen Ghost
Title: The Massacre
Post by: bfr on June 07, 2007, 04:12:00 pm
Multiple frame animations?  Grayscale?  On a TI-83+?  o.oblink.gif  Good luck with that.  :Ptongue.gif  I hope you can pull this off (with a decent size and speed).  :thumbup:google.gif
Title: The Massacre
Post by: Delnar_Ersike on June 08, 2007, 04:42:00 am
Well, you could have used Wabbitemu, but I don't know if it has a built-in sceenshot-taker.
Title: The Massacre
Post by: Halifax on June 08, 2007, 08:37:00 am
@Delnar: Wabbitemu is released?? I did not know.

@Fallen_Ghost: No no no it isn't just PTI greyscale. I am using Jim_e's same map but with animation. The grayscale effect is caused by flipping a black and white 8x8 tile back and forth. I should have made a better example. Secondly yes yes code is coming I just have to clean it up a little bit and optimize. Trust me I am going to keep this fully opensource.

@bfr: Wooo cowboy hold up. Grayscale is supported. As I said it is just flipping the black and white tile which is causing the greyscale effect. Trust me I will post a better example later. Also size for the animation only took about I would say 30 lines of code. Jim_e did a lot of good work and that included making his mapper easily moddable. That's why I love it.

Anything else you gyus would like to see in a tilemapper?? I can't think of anything past just animation, but maybe you guys can.
Title: The Massacre
Post by: calc84maniac on June 08, 2007, 10:11:00 am
WabbitEmu has betas released. ;)wink.gif
Title: The Massacre
Post by: Harrierfalcon on June 08, 2007, 10:41:00 am
And it has a built-in screenshot function.  :Dbiggrin.gif
Title: The Massacre
Post by: Halifax on June 08, 2007, 11:36:00 am
hmmm wow I guess I just haven't been keeping up with it. Well let us see how Wabbitemu handles this. I will edit this post with the screenshot after I try it.

(Old and bad)Wabbitemu Screenshot:
user posted image

(Good and new)Wabbitemu Screenshot:
user posted image

EDIT: The other one was animating both tiles because there was a problem in the tilemapper but now I fixed it and optimize the loop a little bit more and it runs at 75 FPS now!

Anyways I found out that it moves at 73 FPS so I would suggest capping your framerate at 4-46 FPS if you want to get smooth animation and not grayscale like animation.

Oh yeah and nevermind Multiple frame animation will not be possible. You will only be able to do it by the number of frames you set. So for example:

If you pick 3 frame animation then for all the animated frames you need 3 frames and for the non-animated ones you need 1 frame. If you pick 4 frame animation then you will need 4 frames for all the animations and 1 for non-animated and so on.
Title: The Massacre
Post by: DJ Omnimaga on June 08, 2007, 01:06:00 pm
I diddn't knew another calc emu was in the work? Nice looking so far
Title: The Massacre
Post by: Halifax on June 08, 2007, 01:52:00 pm
Yeah Spencer(basically the C and Assembly master) is making it with Jim_e(another one of those elusives masters). Wabbitemu (in my eyes) is already leaps and bounds ahead of PindurTI even in its beta.
Title: The Massacre
Post by: Fallen Ghost on June 09, 2007, 05:56:00 am
Well, your 75 frames/second looks like 5/sec in the second screeny due to slowness of scrolling.
Title: The Massacre
Post by: Halifax on June 09, 2007, 07:06:00 am
That's because I am using 1 pixel scrolling and in the others I would change between 1-4 pixel scrolling. But when you think about it it would only scroll 75 pixels in a second so actually 5 pixels per second would look really really slow. Anyways do you guys know any good hosting sites for files. So I can upload the source and post it on here?
Title: The Massacre
Post by: Fallen Ghost on June 09, 2007, 03:30:00 pm
looks more like 37/sec (because you have to draw 2 buffers for GS), so 73 ~ 75/2=37 frames/s, but yeah, I catch what you mean.

And no, it can't be possible you get 75 FPS not including GS, cause it would mean 150 refreshes, so 6 000 000 clocks (counting on a 83 +BE)/150=40k T states, 7k less than rigview and 12k less than Fastcopy.
Title: The Massacre
Post by: Halifax on June 09, 2007, 04:24:00 pm
?? As I said I am not using grayscale. There is only one buffer of two bytes. So it is only animating the tiles that need to be animated through precalculated values. And actually it does run at 75 FPS since Wabbitemu knows everytime you access the LCD so then it just times with its FPS algorithm and spits out the number.
Title: The Massacre
Post by: Jon on June 09, 2007, 10:28:00 pm
:oohmy.gif that's insane halifax. A tilemapper going that fast?  
Title: The Massacre
Post by: tr1p1ea on June 10, 2007, 02:53:00 am
You're just flipping certain tiles each frame to create the grayscale effect? How does it look on calc?

Also how many tiles will you be using in this game? Jim's tilemapper is only really fast with a limited amount of tiles.

Also, wabbit isnt 'leaps and bounds' ahead of PindurTI. They arent actually very different, unless you consider a GUI a huge step forward (which it isnt). The LCD emulation is also unrealistic, but that was done deliberately.

They are both really great emulators, either of which would be a better alternative to the likes of VTI/Flash Debugger.
Title: The Massacre
Post by: calc84maniac on June 10, 2007, 09:53:00 am
Hey, my homemade tilemapper is 60 fps at worst (99 in 15mhz). :Dbiggrin.gif
Title: The Massacre
Post by: Halifax on June 10, 2007, 01:15:00 pm
tr1p1ea: yeah I have heard all the gripes about it going slow on a lot of tiles and have seen the timings. It's alright though. I just make a dynamic tileset switcher while keeping the same buffers. Secondly it looks horrible on calc. It flickers like crazy. I didn't mean it to be grayscale I just couldn't come up with a better animation. Oh well.
Title: The Massacre
Post by: Insanity on June 10, 2007, 01:19:00 pm
Whoa, I wish that tile map engine could be used in BASIC programs :Ptongue.gif   It totally Pwns xLIB's Tilemap function :Ptongue.gif
Title: The Massacre
Post by: bfr on June 10, 2007, 03:16:00 pm
QuoteBegin-Halifax+10 Jun, 2007, 18:15-->
QUOTE (Halifax @ 10 Jun, 2007, 18:15)
tr1p1ea: yeah I have heard all the gripes about it going slow on a lot of tiles and have seen the timings. It's alright though. I just make a dynamic tileset switcher while keeping the same buffers. Secondly it looks horrible on calc. It flickers like crazy. I didn't mean it to be grayscale I just couldn't come up with a better animation. Oh well.  

 Although it looks cool already, if you want it to be animation without grayscale, you could probably set up some sort of interrupt.  
Title: The Massacre
Post by: tr1p1ea on June 10, 2007, 07:10:00 pm
Err xLIB's tilemapper is considerably faster. Its only aligned remember -- running it from the TIOS is what slows it down.
Title: The Massacre
Post by: Halifax on June 10, 2007, 11:40:00 pm
@tr1p1ea: I think he was joking, but hey anyways how do you know anything about how Xlib run tr1p1ea?? According to this guy http://www.ticalc.org/archives/files/fileinfo/399/39961.html it was made by Triplea Productions. :)smile.gif

@bfr: Yeah I know I was just showing that animation worked not the way I would be using it. Thanks though.

Also @tr1p1ea: And what tilemapper would you suggest if I had a lot of tiles? Or how would you suggest I make it? I tried MiSSTeR which just maps the tiles aligned and then shifts the whole screen, but I was wondering if that is really faster than this.
Title: The Massacre
Post by: Liazon on June 11, 2007, 03:07:00 am
yep, tr1p1ea is the author of xlib :)smile.gif

I think the major difference between messuptiles and planeshifting is that the speed of planeshifting does not depend on the number of tiles, which means that the speed will depend on how well it is written.

On the other hand, messuptiles has a set # of clock cycles for each tile rotated, which according to Jim e iirc is the major bottleneck.  The overhead (required cycles) isn't too bad, iirc, it's about the same as a fastcopy.  

I'd probably go with Jim's sugggestion of 117 tiles or less.  Or just calculate the # of clocks needed for X tiles using his calculations in the comments.  Then see if it's less than the total speed of the planeshifter.  Of course, then you probably wouldn't be able to use Jim's animated mapper
Title: The Massacre
Post by: calc84maniac on June 11, 2007, 04:21:00 am
My tilemapper is unique in that it only writes aligned tiles (every 8 pixels rotated horizontally) and uses a 14x64 buffer (for scrap columns to rotate into/out of, plus no worries about horizontal sprite clipping).
Title: The Massacre
Post by: Halifax on June 11, 2007, 06:36:00 am
@calc84maniac: I have thought of trying that and that's how I heard Spencer does it. I have also consider writing a tilemapper the way you do it. Is your tilemapper currently open-source?

@Liazon: He hasn't released his animated tilemapper source and that's why I made my own. Which only slows the loop for rotating the tiles down by about 1-15 cc's per tile. Isn't a bad tradeoff in my mind.
Title: The Massacre
Post by: calc84maniac on June 11, 2007, 02:58:00 pm
I may opensource it after the Cemetech Contest is over; I'm using it in my entry.
Title: The Massacre
Post by: Speler on August 02, 2007, 10:36:00 am
Any updates here?
Title: The Massacre
Post by: DJ Omnimaga on August 02, 2007, 10:59:00 am
QuoteBegin-Halifax+11 Jun, 2007, 6:4-->
QUOTE (Halifax @ 11 Jun, 2007, 6:40)
According to this guy http://www.ticalc.org/archives/files/fileinfo/399/39961.html it was made by Triplea Productions. :)smile.gif

:lmao:ptdr.gif
Title: The Massacre
Post by: Halifax on August 02, 2007, 03:39:00 pm
Super_Speler: Not really. I mean I have been messing with The Massacre a lot and found out a lot of cool macro abilities for SPASM. It's so awesome how SPASM handles macros. For example:

you can have a macro like this
macro(x1,x2,x3,x4)

but have it called like this
macro(4, 5)

and your macro can check what arguments were passed and what ones weren't.

Anyways in other news I have scrapped Jim_e's tilemapper.

I am currently working on a homemade plane-shifting LUT tilemapper.
Title: The Massacre
Post by: DJ Omnimaga on August 02, 2007, 03:52:00 pm
wow nice, i should give asm a shot again with those macro one day, not sure though