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 - Iambian
Pages: 1 ... 7 8 [9] 10 11 ... 52
121
« on: February 21, 2012, 04:50:29 am »
If you're an archer, it's no problem. But the real fun happens mid day when you get like a major party farming for fame. Once I saw one of those, that is when I realized it's how things get DONE.
The permanent death thing is rather annoying, but it does make quick escapes to Nexus just that much more exciting. Like "holy f***, I can't believe I survived that." Happened to me quite a few times, and I must say, it was a blast. Heal up at Nexus, go back and teleport to the group you left behind to continue from where you left off.
Protip: Reassign the Nexus hotkey to Caps Lock. If you want to chat but have Caps Lock on, flash the options screen (O key), hit Caps Lock, then go back. Easy.
EDIT: Made like 3K fame so far. Been farming that s*** like no tomorrow. Been dying a lot, but that's okay. That's what the vault is for. To keep the stuff for your next class.
Just... try to find me when you play. I'm always Xethyl. If you've been on IRC, you'll know this nick quite well. I usually play on the most overloaded realm at the time.
122
« on: February 15, 2012, 12:04:18 pm »
Attached to this post is the full program, complete with unreadable cherry-flavoured source.
Warning: Source may contain too much cherry flavouring for some people to handle. Use responsibly.
EDIT: Low frame rate screenshot attached, also probably seen in Cemetech's archives, but forgot to upload to ticalc. Also, I hope running this program is understood well enough, since I also forgot to include that information in the ReadME.txt file. You can run this from either the homescreen or a shell (as an ION program). I'm unsure if the program description is up to date.
EDIT2: Whoops. Forgot to add that screenshot. Put it in now.
123
« on: February 15, 2012, 06:28:16 am »
Tip: If you have played the Touhou Project series and know "Danmaku Dodge: Lunatic", don't go up against god monsters with an underleveled party in tow, with the promise of easy levels. It does not end well for them.
Learned that the hard way.
124
« on: February 11, 2012, 06:20:34 am »
Thanks for telling me about this. Now I'm hooked >.<
125
« on: February 11, 2012, 05:38:29 am »
I got this thing mostly built. All that needs to be done is add a few more default images and update the rule set. This is what my program has so far:
* Ability to toggle 15MHz mode if you have it * Change rule sets and create your own * Save to or load from pic files 0-9, now with crappy thumbnails! * Contains built in patterns (thus far, only Gosper Glider Gun is in. Try to suggest more!) * Allows you to change between a wrapping buffer and a buffer with a dead zone around it * Stopping the program at any time to make any changes. * Takes initial input from graph buffer (best used if run from homescreen instead of a shell) * Allows step-by-step mode in the CA field
I try to touch on all the features listed in the screenshot below EDIT: I forgot to demonstrate the step-by-step feature >.< Oh well. When I get the patterns and rules put in, I'll submit something to the Omnimaga archive write up that blasted ReadME file, then submit that to the archive.
126
« on: February 09, 2012, 04:49:21 am »
My favorite method is to have the simulation quit after a large number of seconds, and time how long it takes to quit.
That was a great idea, thanks! I just remembered that there were online stopwatches, so I used one of those to time my program. I set my CA program to stop at 512 generations. The end result was about 38 seconds, which resolves to roughly 13.5 FPS @ 6MHz. My original calculation had it at around 16FPS, so that isn't too bad. I did not time the other program, but I'm pretty sure that the older one ran much slower than that. Over all, I think this is a great success. Maybe a few minor adjustments may make this thing run ever so slightly faster, but I'm certain this is about as fast as it's going to get using this method of cell checking. I suppose "tomorrow", I'll pull together the rest of the menu interface, add a few features additional features, and then upload this to ticalc.
127
« on: February 09, 2012, 02:00:20 am »
I know the menu system took a backseat to this whole thing, and I know it looks more like a BASIC program with an ASM backend to it, but really. This will help keep the program file size down and ensure that useful features are included. I haven't written said useful features, but they'll be in soon. Planned are: thumbnail views of work screen and image files for saving and loading, and custom rule editing. Also, the thing works faster. Can't tell how much faster it runs since wabbitemu won't give me a reliable framerate anymore. Probably has something to do with the way I'm updating the LCD. Any suggestions on how I can figure out framerate without having to have a stopwatch and a good eye (both of which I do not possess)? EDIT: Let's see if I can link to attached images from within the same page. I do this so I can see the difference between the old and the new easier than having to scroll back and forth. Old image thinger:
128
« on: February 08, 2012, 04:24:23 pm »
Ce poste est traduit de l'anglais vers le français en utilisant "Google Translate". Les informations concernant l'utilisation de l'extension de l'application PicArc Celtic III peut être trouvé dans le fichier de documentation. Une copie en anglais de qui est dans le codebox ci-dessous. Une version stand-alone de PicArc peut être trouvé à l'URL ci-dessous. Les instructions sont également en anglais. S'il vous plaît trouver quelqu'un qui peut traduire les instructions pour vous. Je n'ai pas confiance la traduction assez pour donner des instructions appropriées. Gardez à l'esprit que la base de données produite par la version autonome n'est pas compatible avec la base de données que Celtic III produit. http://cadan.57o9.org/picarc5.zip=================================================================== c009 ==== == CELTIC III PICARC EXTENDED COMMAND SET==================================== =========================================== uses the identity() token ======= ============================================================================= | Code/Name | Command Description ----------------------------------------------------------------------------- |00 | identity(0,"DATABASENAME",function,db_arg1,db_arg2) | | | DBQUERY1 | A nifty little function that allows many kinds of | | operations to take place with the PicArc database. | | The db_argument will vary depending on what you | | are going to do, but not by that much. Just read below. | | | | If function = ... | | | | 0 = Format this database. Just like anything that says | | "FORMAT", you lose all preexisting data if that | | file happens to already exist. This is not an undoable | | action, so take care. If the file does not already | | exist, it is created and then formatted. After you | | use this command, you will be able to work around | | with the file as a PicArc database. No arguments needed | | | | 1 = Append a picture file. db_arg1 will be the pic number | | you want to refer to. For Pic1, argument will be | | 1, for Pic9, it'll be 9. For Pic0, it'll be 10. Keep | | in mind that this command only appends Pic files. No | | insertion is available, so be careful on the order of | | Pic files you append. | | | | 2 = Delete an entry. Starting at db_arg1 = 0, this command | | removes the specified entry off of the database. This | | command is NOT undoable, so exercise extreme caution. | | | | 3 = Retrieves the number of entries in the database. | | | | 4 = Works just like function 1, except that this command | | will attempt to compress the pic. It automatically | | chooses the method of best compression so you'll always | | get the smallest entry that the application is capable | | of making, but using this command may be a little | | slower than its counterpart. All the other commands | | transparently decompresses compressed entries without | | much of a speed loss. | | | | 5 = Copies the entry denoted by db_arg1 to the graph | | buffer with the logic indicated by db_arg2. | | 0: REPLACE, no screen update. | | 1: AND, no screen update. | | 2: OR, no screen update. | | 3: XOR, no screen update. | | 4: REPLACE, the screen is updated. | | 5: AND, the screen is updated. | | 6: OR, the screen is updated. | | 7: XOR, the screen is updated. | | | | 6 = Copies an entry from the database as denoted by | | db_arg1 (starting at zero) to a Pic file as denoted by | | db_arg2. For example. to copy entry 6 of the database | | "FOO" to Pic1, do the following: | | identity(1,"FOO",6,6,1) ----------------------------------------------------------------------------- |01 | identity(1,pic_number,function,[arg_1,arg_2...]) | | | TOGGLEPIC | This command takes Pic X (Pic0 = 10) and performs an action | | designated by a function number. If arg_1 = ... | | | | 0 = Copies Pic file to the graph buffer using logic method. | | arg_1 specifies the Pic file | | arg_2 specifies the logic code. The supported codes are | | | | 0: REPLACE, no screen update. | | 1: AND, no screen update. | | 2: OR, no screen update. | | 3: XOR, no screen update. | | 4: REPLACE, the screen is updated. | | 5: AND, the screen is updated. | | 6: OR, the screen is updated. | | 7: XOR, the screen is updated. | | | | 1 = Creates a new pic file using the contents of the | | graph buffer. Any preexisting picture will be replaced. | | 2 = Swaps a pic file between archive and RAM. If it is now | | in RAM, the output is 0, else it is some other number. | | 3 = Deletes a picture. This is not an undoable action, | | so be cautious while using this function. | | ----------------------------------------------------------------------------- |02 | identity(2,"GROUPFILENAME") | | | GETPICGROUP | Outputs a list containing all the names of the pic files | | in the TI-OS group file. Each name is denoted by a number. ----------------------------------------------------------------------------- |03 | identity(3,"GROUPFILENAME",pic_name_in_group) | | | EXTPICGROUP | Copies a pic by name from the group and puts it into a pic | | file of its corresponding number. Any preexisting pic files | | are overwritten. ----------------------------------------------------------------------------- |04 | identity(4,"BINSTR",xPos,yPos,Width,Height,StartX,EndX, | | SStartY,SEndY,Pic#,Logic,TileSize,Update_LCD,2ByteMode) | STRINGTILE | | | See xLIB command "DrawTileMap" for information regarding | | the inputs. The only difference is that "Matrix_name" is | | replaced with "BINARYSTRING". For this, you supply a hex | | string converted to binary with the HEXTOBIN command. | | The Height and Width property of the command is used to | | provide a two-dimensional matrix feel to an inherently one- | | dimensional structure that is a string. | | | | If 2ByteMode is set to something other than 0, then the | | input string is considered words instead of bytes. This | | allows the user to use 4 hex ditgits (two bytes) per tile | | so up to 65536 different tiles can be accessed using this | | command. | | | | All other arguments function as they do with the xLIB | | command. | | | | As a developer, you should develop your tilemaps in hex | | and then use the HEXTOBIN command to convert it to the | | format required by this command. To edit this tilemap, you | | should use the EDIT1BYTE command while this tilemap is in | | its binary format. | | | | Note that any missing arguments will default to the value | | of zero (0) instead of 32 as in xLIB. ----------------------------------------------------------------------------- |05 | identity(5,"HEXSTRING",x,y,w,h,logic,flip,update_lcd) | | | PUTSPRITE | Works just like the xLIB command real(1,...) except that | | the Pic and the coordinates on that Pic file are not | | defined. | | | | Instead, a string consisting of hex digits is used to | | define the sprite as inline data. For example, if you | | wanted to draw a black 8*8 block at the top-left corner of | | the screen with XOR logic and drawn immediately... | | | | identity(5,"FFFFFFFFFFFFFFFF",0,0,1,8,3,0,1) | | | | Useful for those that want to display sprites without the | | use of bulky image files. | | | | For large sprites, each byte goes LEFT first, then DOWN, | | so specifying "80FF0180000180000180FF01" would relate to | | such a perfect box 3 bytes wide and 4 pixels down. | | | | | | | | | | | | | | | | Note that any missing arguments will default to the value | | of zero (0) instead of 32 as in xLIB. ----------------------------------------------------------------------------- |06 | identity(6,shift_number_of_times,direction,screen_update) | | | SHIFTSCREEN | Shifts the image on the graphbuffer a number of times in | | a direction indicated below. | | | | left : 1 | | right : 2 | | up : 4 | | up-left : 5 | | up-right : 6 | | down : 8 | | down-left : 9 | | down-right : 10 | | | | If screen_update is zero, the screen will not update. | | Otherwise, it will update. ----------------------------------------------------------------------------- |07 | identity(7,x_left,y_top,x_right,y_bottom,display_method) | | | DRAWBOX | Draws a box which corners are (x_left,Y_top) and | | (x_right,y_bottom) using a specified display method. | | | | Since this display method code is not complete, let's say | | that it is xLIB-compatible with the drawshape command, | | minus three. Add 128 to this number and the screen will | | also be updated. ----------------------------------------------------------------------------- |08 | identity(8,"HEXSTRING",Right,Down,LOGIC,UpdateLCD) | | | FILLMAP | A command that fills the screen with the same 8 x 8 tiles | | as defined by 16 hex digits. Along with the right and | | down shift arguments, this command makes scrolling | | backgrounds far easier. | | | | The hexstring, as said before, is 16 digits long, 8 pairs | | which makes up an 8 by 8 pixel tile. | | | | The right and down arguments determine how many pixels | | the filled map should be shifted. You can either choose | | not to shift or shift in either direction up to 8 pixels. | | Since the routine does mod 8, you can actually have these | | numbers increment and decrement bounded by -65565 to 65535 | | so you should not actually have to test for bounds save for | | those already mentioned. | | | | LOGIC applies a method used to write the tiles to the | | buffer. 0=overwrite ; 1=AND ; 2=OR ; 3=XOR | | | | If UpdateLCD is anything other than zero, the screen is | | updated with whatever was just written to the buffer. | | | | Additional note: The bounds are actually -99999 and 99999 | | and it'll still function properly due to how the custom | | float to integer routine works. This "bug" is not likely | | to be fixed. It's not hurting anything. It's safe. No one | | is gonna wait at a menu for as long as it takes to cycle | | through the routine *that* many times. ----------------------------------------------------------------------------- |09 | identity(9,x,y,w,h,Dir,Type,Repeat,LCD_update) | | ***NOT FULLY IMPLEMENTED YET*** | BOXSHIFT | This command shifts or rotates within a box-shaped area on | | the screen (and may be the whole screen if you want). | | | | x = top-left corner x, 0 thru 11. (each 8 pixels is a byte) | | y = top-left corner y, 0 thru 63. | | w = width of box object, 1 thru 12. Specifies byte widths. | | h = height of box object, 1 thru 64 | | | | Dir : Each will have a basic direction followed by | | what you must add to it in order to perform | | a different type of shift. | | left = 1 | | right = 2 | | up = 4 | | up-left = 5 | | up-right = 6 | | down = 8 | | down-left = 9 | | down-right = 10 | | | | Type: Determines what type of shifting is to take place | | 0 = Keep bit being shifted in | | 1 = Shift in a black bit (for black backgrounds) | | 2 = Shift in a white bit (for white backgrounds) | | 3 = Let bit that shifts out reappar on other side | | (for scrolling backgrounds) | | | | Repeat: A number that repeats the shift operation as | | many times as specified. Cannot be zero. | | | | LCD_update: If it is a number other than zero, the screen | | is updated with the results. | | | | Notes: The routine does not perform clipping. All | | coordinates and dimensions must remain onscreen. | | | | Tips: If you don't update the LCD, this command is real | | useful for dynamically editing tilemaps by loading | | them to the buffer, using this command to edit them, | | then store them back to the pic file, all without the | | buffer ever being updated. The procedure is fast | | enough to be dismissed as a slight slowdown due to | | the BASIC parser. ----------------------------------------------------------------------------- |10 | identity(10,flag,[x,y],"TEXT") | | | DRAWTEXT | Draws text to the graph screen with the coordinates x,y | | using the small font. The screen is NOT updated. If you | | wanted to updated it, you should've used the Text() command | | instead. | | | | If you omit the x,y coords, the text is drawn to the last | | coordinate the previous DRAWTEXT command ended up. Does not | | line-wrap. It's your duty to do that yourself. | | | | If you don't want the text to be modified in any way, set | | flag to zero. If you want to modify, you should do addition | | to the value using these numbers: | | | | +1 = Draw using large font. | | +2 = Erase 1 row of pixels below the small font base | | +4 = Invert text | | +8 = Hex string is used in place of text to use font map. | | If you know the character's hex value, you can use it. | | Advantage: Get chars you can't access any other way. | | +16= Update screen anyway. Just a throwback. | | | | Example: I want to use the large font AND invert text | | at x=4 and y=8 using "THIS IS TEXT" as text. | | identity(10,0+1+4,4,8,"THIS IS TEXT") | | - or - | | identity(10,5,4,8,"THIS IS TEXT") | | [ note that the flags have been condensed ] | | -----------------------------------------------------------------------------
129
« on: February 07, 2012, 12:54:43 pm »
Woah ! Looks awesome ! What rules do you use to make the labyrinth ?
I used the "Maze" rule, which starts on line 36 of the mess that is below. What's below was copied straight out of the source of my 2D CA program. I grabbed these rules from http://en.wikipedia.org/wiki/Life-like_cellular_automaton and followed a few links to get more rules. This was fun. If you have any suggestions for what I missed, I'd be glad to include them. Also, I intend on allowing you to define your own ruleset within the program. This is something I've always intended on doing but never got around to. ;Ruleset tables: ;Format: ;.db #ofentries,#ofneighborsToRetunToLife ;.db #ofentries,#ofneighborsToKeepThisAlive c.Conway: c.Life: .db 1 ;return to life, one entry .db 3 ;return to life, these # of neighbors .db 2 ;keep alive, two entries .db 2,3 ;keep alive, these # of neighbors
c.Seeds: .db 1 ;return to life .db 2 ;2 neighbors .db 1 ;keep alive list .db 9 ;illegal value to simulate the survival list as "empty"
c.Serviettes: .db 3 ;return to life .db 2,3,4 .db 1 ;survival .db 9 ;impossible to simulate empty list.
c.Flakes: .db 1 ;birth rule .db 3 .db 9 ;return to life .db 0,1,2,3,4,5,6,7,8 ;life without death
c.Gnarl: .db 1 ;birth rule .db 1 .db 1 ;survival rule .db 1
c.Maze .db 1 ;birth rule .db 3 .db 5 ;survival rule .db 1,2,3,4,5
c.2x2 .db 2 ;birth rule .db 3,6 .db 3 ;survival rule .db 1,2,5
c.Replicator .db 4 ;birth rule .db 1,3,5,7 .db 4 ;survival rule .db 1,3,5,7
c.Amoeba: .db 3 ;birth rule .db 3,5,7 .db 4 ;survival rule .db 1,3,5,8
c.HighLife: .db 2 ;birth rule .db 3,6 .db 2 ;survival rule .db 2,3
c.WalledCities: .db 5 ;birth rule .db 4,5,6,7,8 .db 4 ;survival rule .db 2,3,4,5
c.Stains: .db 4 ;birth .db 3,6,7,8 .db 6 ;survival .db 2,3,5,6,7,8
c.Coagulations: .db 3 ;birth .db 3,6,7,8 .db 6 ;survival .db 2,3,5,6,7,8
c.PseudoLife: .db 3 ;birth .db 3,5,7 .db 3 ;survival .db 2,3,8
c.Move: .db 3 ;birth .db 3,6,8 .db 3 ;survival .db 2,4,5
c.34Life: .db 2 ;birth .db 3,4 .db 2 ;survival .db 3,4
c.DayAndNight: .db 4 ;birth .db 3,6,7,8 .db 5 ;survival .db 3,4,6,7,8
c.Assimilation: .db 3 ;birth .db 3,4,5 .db 4 ;survival .db 4,5,6,7
c.Coral: .db 1 ;birth .db 3 .db 5 ;survival .db 4,5,6,7,8
c.LongLife: .db 3 ;birth .db 3,4,5 .db 1 ;survival .db 5
c.Diamoeba: .db 5 ;birth .db 3,5,6,7,8 .db 4 ;survival .db 5,6,7,8
130
« on: February 07, 2012, 12:32:29 pm »
The image that I have posted is not the version that I am proposing. What is posted is my preexisting version, dating back to 2006-2007. It runs at a nice 8.73 FPS @ 6MHz according to Wabbitemu (fastcopy doesn't like it at 15MHz). Now... what I am trying to say is that I don't think 8.73 FPS is fast enough. Me, Runer112, and (I think) ZippyDee was chatting late last night. Runer112 was trying to help ZippyDee with something about a flood fill algorithm and the manner in which he was doing it reminded me about my old 2D cellular automata program, so at one point, I innocently showed the main code to this program to Runer112 on IRC and asked him to optimize it. He basically went "wtf?" at my code and wrote it off as unoptimizable, so then we sort of went around talking about how it works, and trying to explain to him the insane method I was using to do the job. And then, at some point he suggested something that I realized I was already doing in E:SoR. Why not do 2D-CA on a vertically-aligned buffer? Yup. So now that's what I'm working on. Vertically-aligned goodness. Now, this new version is not going to sport that flashy menu system, more or less because version 1.3 had a menu bug that would cause the calc to crash almost randomly. I never really figured out what was causing the problem. But try it out at your own risk. I'm also attaching that package. Because I'm not going with something fancy, I figured I'd go with something more intuitive instead. Like image thumbnails of what you're trying to save or load against what was already done in the 2D play field. Like the original, you'll be able to change the rulesets right from underneath an already in-progress field. That is, it'll pause when you try to quit and continue from where you left off (if you don't exit the program, that is). So, yeah. I'm taking a small break from E:SoR (or rather, hop back and forth between the two) to work on this small, but satisfying project. Also, I plan on having default images built in so you can select them if you don't have the pic files of what you want. EDIT: FWIW, by "2D Cellular Automata", I'm referring to 2 two-state system in a Moore neighborhood, which is what Conway's Game of Life is run on.
131
« on: February 07, 2012, 08:13:47 am »
Double-post for very timely bump (for ... other... reasons... ehehe...) Pulling together statistics generator so that maybe, just maybe, the chickendude might be able to work on the battle engine. Still, gotta test to see if I didn't horribly break anything, since this is all mostly new code.
132
« on: February 06, 2012, 03:50:08 am »
I'm okay about getting OmnomIRC in on #fishtankcity. Moar people to discuss stuff especially during the busier times on #omnimaga.
So... I suppose you should talk to His Lobsteriness about it now, since it pretty much is his chan.
133
« on: February 04, 2012, 05:30:28 am »
Actually, you might want to pause on the battle engine thing for a little bit. I need to revise a couple of things with respect to how the stats are generated and how the flow of battle is supposed to go.
EDIT: Unless you can figure your way around the design documentation well enough to implement it for yourself.
134
« on: February 03, 2012, 06:52:39 pm »
Yes! Thank you!! I've been wanting some sprites from Escheron: Shadow over Ragnoth! is that all the tiles in the game? aren't there more?
Those are all the tiles that are rendered as part of the tilemap routine. Character sprites, on the other hand, are rendered by a nonexistant sprite routine (You try writing a masked 4-level grayscale sprite routine that operates on an grayscale-interlaced vertically-aligned buffer. calc84maniac refused to do it for me, though I dunno if it's because he wants me to feel the pain or if he just doesn't want to). I am not willing to share the entire spritesheet at this time, if only because that part hasn't been finalized. If you absolutely need to have some sort of example, I suggest looking through some of the topics in the E:SoR subforum. All the good topics have related images in the first page that you can use as a reference. Except the really long ones. In that case, I might make the suggestion to use the "View attachments" link which takes the form of a paperclip next to the topic title. The stuff found in those threads contain preliminary work, which may or may not appear as they are in the final revision of E:SoR.
135
« on: February 03, 2012, 06:32:13 pm »
Not entirely sure *where* these sprites originated from, but they were provided to me by Zera. I think he said he ripped quite a few of them from a selection of Gameboy games. Anyway, this tileset is found in Escheron: Shadow over Ragnoth, a game that I've been working on for quite some time (coupled with lots and lots of breaks, hehe).
EDIT: The tiles between 3 and 11 are actually land-water tiles. They're grayed out because of an interesting property of these water tiles: The dark gray layer can be used as a transparency layer. This allows me to animate them at the same time as the water tile (7). This is provided as a small hint on a technique you can use if you need to have some form of layering when you do grayscale stuffs.
EDIT2: I think Zera would let me post the tileset freely like this. I mean, E:SoR is supposed to be released as open-source once the thing is pulled together, so I suppose sharing like this would be a natural extension of that. I just don't want to release too many details because that would just spoil the game.
EDIT3: inb4 these are 4-layer grayscale tiles.
Pages: 1 ... 7 8 [9] 10 11 ... 52
|