166
Axe / Re: Path prediction
« on: November 04, 2012, 01:47:10 pm »
Try Copy() (in the math menu)
Copy(source, destination,size)
Copy(source, destination,size)
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. 166
Axe / Re: Path prediction« on: November 04, 2012, 01:47:10 pm »
Try Copy() (in the math menu)
Copy(source, destination,size) 167
TI Z80 / Re: [Axe] Axometry, an Axe version of Geometry Wars« on: November 04, 2012, 01:43:12 pm »
Looks pretty good. Are you using the same control scheme as penguin's? Are you going to make this a clone of penguin's or just your own version of geo wars.
Either way, good work so far 168
Axe / Re: How to use the Copy and Fill commands« on: November 03, 2012, 11:39:54 pm »
Fill(PTR,SIZE) : The byte already at PTR is copied to all the bytes after it until SIZE bytes have been filled with that value. Zero is not a valid Size.
Fill(PTR,SIZE,BYTE) : SIZE bytes of data starting at PTR are filled with a value. SIZE must be greater than 1. Copy(PTR1,PTR2,SIZE) : SIZE bytes starting from PTR1 are copied to PTR2 onwards. Zero is not a valid Size. This is what the commands index says. I think it's pretty straightforward unless you don't understand pointers. If you don't understand pointers, check out this explanation, it's pretty good. (You can find other excellent tutorials and explanations of stuff here) If you still have questions, feel free to clarify/respond. 169
Axe / Re: Path prediction« on: November 03, 2012, 08:04:44 pm »
I think that last thing is what you're going to have to do. Run a loop every frame drawing a pxl for where the ball would be assuming the paddle doesn't move. If you do it efficiently and at a low-ish sample speed, it shouldn't be too hard on performance.
170
Ash: Phoenix / Re: Ash: Phoenix- Reboot« on: November 03, 2012, 03:02:39 pm »
No, it's copied into ram from archive. That's why it's so fast edit: ninja'd by hayleia lol
Each region is 24x24, stored in archive. There exists a meta-map, or tilemap of tilemaps (32x32) that determines how regions are placed in relation to each other. When the loadmap routine is called, it takes metamap X and Y coordinates as arguments to determine which 24x24 tilemap is needed to be copied in. However, the amount of memory I allocate for the "active" tilemap is 32x32-- so that the edges of other maps can be easily scrolled in and out. The routine takes (X-1,Y-1),(X,Y-1),(X+1,Y-1),(X-1,Y),(X,Y),(X,Y+1) etc. and copies in the appropriate parts of each surrounding map to RAM, creating a 32x32 tilemap where the center 24x24 is the "active tilemap." When you walk off the 24x24 section, your metamap coordinates are updated accordingly and the loadmap routine is called again. Note that this means that all the maps are static; and that they can only be changed temporarily. But that's the way the engine's always been so whatever. One unavoidable issue is that if you change maps in the X direction, you will automatically take 2 steps. You will only notice this is you aren't holding down the button, so I don't think it'll be a huge issue. It's because a 32x32 area can only hold 4 tiles extra to be scrolled in on every side, and when walking to the left (due to the way the map is aligned) you would need 5 tiles. So I force map change a tile early when walking this way, then force another step so it doesn't get messed up. You can probably observe this by playing with it a bit in the build 171
Ash: Phoenix / Re: [A:P] Documentation« on: November 03, 2012, 02:44:08 pm »
Slight update to metadata, now that I've actually begun implementing some code.
172
Ash: Phoenix / Re: Ash: Phoenix- Reboot« on: November 03, 2012, 02:37:43 pm »
Major mapping update
-Finished custom asm mask routine (although I need to change it a little to draw to any tile once I implement NPCs) Yeah, the routine is kinda poorly written; I'll eventually get around to optimizing it. Don't look! But the important thing is that it works for now lol -Sprited character and animations -Optimized/modularized movement code to allow tap-to-face-direction and improved speed with one change. -Draws black automatically if shifting in non-existent data -Last, but most definitely not least, implemented seamless map transitions. Remember in the demo and in Embers, in order to change areas you HAD to go through a door or something? No longer; now you don't notice anything when you move from one area to another (well, if you look really closely the grayscale flickers a tiny bit). Effectively, the world the player inhabits is 9216x9216px or 768x768 tiles...That's 589,824 tiles, or over 13,000 screens of world all seamlessly put together. The screenshot shows the character walking around on the edges of 3 areas. It only takes 2kb of RAM to run this mapping system As usual, the build and source can be found in the first post To-do: -Collision detection + map switching via portals/doors -Fix up mask routine -NPC render engine (then I'll be done with all the overworld stuff...) 173
Axe / Re: Optimization and adding AI« on: November 01, 2012, 08:51:16 pm »Code: [Select] PtnOn(X,Y,I*8+Pic1P9) Optimized, and bugfixed at the same time Remember that placing constants at the end of expressions is optimal, and also remember Axe order of operations is straight-up left to right (unless there are parens) 174
Axe / Re: static vars« on: November 01, 2012, 08:48:49 pm »
The custom variable method was created to make creating custom variables relatively easily.
x->{L1+2}r is the same speed and size as L1+2->oVAR : x->VAR Note that you can abuse the custom variable system to create named constants, similar to finals in java, only you can actually notice the speed difference. For example, 32->oMapW allows you to use oMapW in place of 32, anywhere in your code. Useful for debugging and clarity 175
Ash: Phoenix / Re: Ash: Phoenix- Reboot« on: October 31, 2012, 10:33:01 pm »
Well, what happens is that the scrolling/movement routine requires the next row of sprites to be shifted in to be copied into RAM (about 384 bytes worth). Right now it's set up so that at the beginning, when I load the map, about 1kb of tiles are imported from archive into RAM, and the shifting routine "spritebank" is created by referencing that 1kb. I'm planning to "cut out the middleman," and see if I can create the spritebank by drawing on the tiles in archive. That way I can effectively have access to any and all tiles in archive The spritebank creation copy routine is only run once per button-press, so I'm hoping that the speed difference will be negligible.
Progress for today: shifted the extra 4 pixels to the top of the screen, since I realized the character (being 12x16) will appear more centered that way. Began writing custom assembly aligned-masked-16x16 character display routine. Edit: It works. Every map now has access to 256 different tiles. 176
Ash: Phoenix / Re: Ash: Phoenix- Reboot« on: October 30, 2012, 11:35:23 pm »
The map is just drawn before the first frame and the rest is shifted in See the first post for installation instructions/what the source is. I'm very happy with how it turned out, since I think it has the potential for lots more abuse (For example, I'm using the bitmap command for the initial map-draw LOL but hey, who cares, you can't see it) especially I think for the ability to call sprites in from archive allowing me to use a full range of 256 tiles for every map Thanks for all your help!
177
Miscellaneous / Re: Disney Wars Episode I: The End of Star Wars as we Know it?« on: October 30, 2012, 11:23:41 pm »
Lucas is on as creative consultant, but I'm not expecting much from him...
If Disney manages to get a decent director on this, there might be hope (John Lasseter would be great)...Or not... Also it just occured to me that if they continue with each movie theme/title alternating between sith/jedi (1.phantom menace 2. attack of the clones 3. revenge of the sith 4. a new hope 5. empire strikes back 6. return of the jedi), then this trilogy (yes, they are thinking about 8,9) will end on a "sith movie"...So either they're going to break the pattern (lame) or end the trilogy on a sith "victory" (also lame, and then what, 10, 11, 12?) 178
Ash: Phoenix / Re: Ash: Phoenix- Reboot« on: October 30, 2012, 11:18:01 pm »
Hi everyone.
So, if you've been paying attention to any of the other threads on this forum, you might have noticed that I'm resuming work on this project. Today I completed enough progress to warrant making an official update The tilemapper turned out to be quite a challenge to code. I wanted to use calcGS to handle the map and tile creation, since honestly, doing such a large project on calc was a massive PITA. However, using calcGS came with its own set of problems: export as 12x12 tiles? Or export as 4 8x8s? Well, at first I tried using 4 8x8s; it's kind of inefficient space-wise, but it plays nice with Axe's built in functions. I glanced at the old source code and chuckled. What was I thinking when I wrote THAT thing?? The old mapper handled each movement with its own routine, scrolling the map using Horizontal/Vertical and drawing with, get this; MASKED TILES mostly off-screen where they'd be shifted in appopriately. What was I doing?? I thought, I can just redraw the map every frame and have a nice, clean tilemapper, the kind I've been using in StickNinja, Embers, and Sandland. Except...grayscale. Oops, looks like even with my leet optimization skillz I can't get the mapper to run fast enough to support good grayscale. Okay, no problem...I can do what i did before, but hey, I don't need to use masked tiles...this should be fine... Nope, using 4 8x8 tiles with 12x12 tiles leaves clips and/or screen residue when you scroll, depending on whether you use Pt-On or Pt-Off. Choose your poison. So THAT's why I was using masks... Well. This new version has to be at least a LITTLE better than the last one. There's no way I'm storing my tiles as masks...not to mention that calcGS does NOT play well with masked tiles. Enter chickendude. With his help, along with lots of additional help from Runer112 and jacobly, I've managed to put together a hybrid Axe/Asm tilemapper from scratch (okay, maybe I did copy paste those 12 line blocks of rr (hl) \ inc hl's, thanks chickendude) Anyway, in conclusion, check out the super not impressive screenie: Oh, and as I promised, open source. The first page will be the go-to point for latest builds, screenies, and source To do, by priority: See if I can make the tilemapper run off of Archive. This, I think should be feasible and will let me cut down on user RAM and have 256 tiles per map Add character sprite, animation Start making tiles (Later, after adding NPC rendering, I'll work on timing the gray better) Begin infrastructure on sections of the program (menu, map transfer, npc, battle baselines) 179
Miscellaneous / Re: Disney Wars Episode I: The End of Star Wars as we Know it?« on: October 30, 2012, 09:21:33 pm »
I texted my friend immediately when i found out, who's a huge movie buff and at film school currently. His response:
Quote they couldn't fuck it up any worse, right? 180
Ash: Phoenix / Re: [A:P] Documentation« on: October 25, 2012, 05:31:53 pm »
*Documentation update*
(see first post) The project is now (almost) officially moving out of spec-writing stage , just going to tighten up the memory allocation meta |
|