nesdev.com
http://forums.nesdev.com/

WIP: Wizard of Wor
http://forums.nesdev.com/viewtopic.php?f=22&t=16172
Page 9 of 10

Author:  tschak909 [ Mon Sep 18, 2017 10:15 pm ]
Post subject:  Re: WIP: Wizard of Wor

Oh my @#%(@# ... Wow, Finally squashed that one, turns out, it was in this part of the code:

Code:
 void handle_player_in_field(void)
 {
-  if ((stamps[STAMP_X(i)]==PIXEL_BOX_X(a)) && (stamps[STAMP_Y(i)]==PIXEL_BOX_Y(b)))
+   if ((stamps[STAMP_X(i)]==PIXEL_BOX_X(a)) && (stamps[STAMP_Y(i)]==PIXEL_BOX_Y(b)))
     {
       // We are aligned.
       if (PLAYER_PAD_RIGHT(i) && stamps[STAMP_LAST_STATE(i)] != STATE_PLAYER_RIGHT && !BOX_WALL_RIGHT(d))
-       stamps[STAMP_STATE(i)]=stamps[STAMP_LAST_STATE(i)]=STATE_PLAYER_RIGHT;
+       stamps[STAMP_STATE(i)]=stamps[STAMP_LAST_STATE(i)]=STATE_PLAYER_RIGHT;
       else if (PLAYER_PAD_LEFT(i) && stamps[STAMP_LAST_STATE(i)] != STATE_PLAYER_LEFT && !BOX_WALL_LEFT(d))
-       stamps[STAMP_STATE(i)]=stamps[STAMP_LAST_STATE(i)]=STATE_PLAYER_LEFT;
+       stamps[STAMP_STATE(i)]=stamps[STAMP_LAST_STATE(i)]=STATE_PLAYER_LEFT;
       else if (PLAYER_PAD_UP(i) && stamps[STAMP_LAST_STATE(i)] != STATE_PLAYER_UP && !BOX_WALL_UP(d))
-       stamps[STAMP_STATE(i)]=stamps[STAMP_LAST_STATE(d)]=STATE_PLAYER_UP;
+       stamps[STAMP_STATE(i)]=stamps[STAMP_LAST_STATE(i)]=STATE_PLAYER_UP;
       else if (PLAYER_PAD_DOWN(i) && stamps[STAMP_LAST_STATE(i)] != STATE_PLAYER_DOWN && !BOX_WALL_DOWN(d))
-       stamps[STAMP_STATE(i)]=stamps[STAMP_LAST_STATE(d)]=STATE_PLAYER_DOWN;
+       stamps[STAMP_STATE(i)]=stamps[STAMP_LAST_STATE(i)]=STATE_PLAYER_DOWN;
       else if (PLAYER_PAD_IDLE(i))
-         handle_pad_idle();
+         handle_pad_idle();




I was accidentally using (d) as an index into the stamps table, which in this case, literally was returning 0 if the opposing player had just aligned with the box.

*BLUSH* :)

welp, we all make mistakes, don't we? :)

Now it's on to shooting the phasor cannons and then to implement monster to cannon and monster to player collision. (I need to study the last one, it's not a bounding box detection, nor is it pixel detection, but I suspect it literally is a direct box alignment, need to observe.)

**WHEW** :)

-Thom

Author:  tschak909 [ Sat Sep 23, 2017 11:12 pm ]
Post subject:  Re: WIP: Wizard of Wor

my OCD has gotten the better of me, and I'm spending the next couple of days shifting the maze downward, so that it can fit properly within NTSC overscan. which in my case means a minimum of one tile shift, but I'm doing two, so that the bottom of the dungeon will meet flush with the dungeon text, like it does in the arcade.

This does mean, that I had to make copies of the tops of my A-Z tiles, and paint horizontal rules above them to match the bottom of the dungeon. This also means that there currently is some attribute clash that I am working out, but the result will look a LOT better, when I'm done.

once this is done, I will start to implement player shooting.

-Thom

Author:  lidnariq [ Sat Sep 23, 2017 11:22 pm ]
Post subject:  Re: WIP: Wizard of Wor

Could you adjust the Y scroll instead?

Author:  tschak909 [ Sat Sep 23, 2017 11:39 pm ]
Post subject:  Re: WIP: Wizard of Wor

lidnariq wrote:
Could you adjust the Y scroll instead?


Not in this case, I'll post a before and after, and you'll see why i'm doing this.

-Thom

Author:  tschak909 [ Sat Sep 30, 2017 11:10 pm ]
Post subject:  Re: WIP: Wizard of Wor

I was going to post this earlier, but nesdev was being moved. :)

So, I've managed to shift the playfield a bit down so that it looks a LOT better (there isn't that goofy gap between the dungeon and the dungeon name, and the radar, anymore.). I also color coded the player countdowns, and implemented teleporting (both players, as well as the enemies can utilize the teleport, which, given that it has a delay, definitely makes things interesting.)

https://www.youtube.com/watch?v=qYrk4bJcSeo

-Thom

Author:  tschak909 [ Sat Sep 30, 2017 11:13 pm ]
Post subject:  Re: WIP: Wizard of Wor

Now i've got an interesting problem, I'm running out of CHR-ROM space for my sprites. Shit.

Basically, I need space for two things:

* The Wizard of Wor needs 36 CHR tiles (2x3, all different, can't reuse bits, 3 frames horizontal, and 3 frames vertical.)
* The between level messages need approximately 32 tiles a piece, of which there are basically four.

I've made the concession that the between level messages always wind up on their own screen. (instead of in the arcade where some of the messages appear over the playfield)

So basically, I need...two more CHR ROM banks. How can I best pull this off?

-Thom

Author:  tepples [ Sun Oct 01, 2017 6:09 am ]
Post subject:  Re: WIP: Wizard of Wor

I've got a solution in mind, but to pull it off, I need to know the following:

  • Are there any pairs of enemies that never appear at once?
  • How much background manipulation are you doing during vblank?
  • How much PRG ROM space is free?

Author:  tschak909 [ Sun Oct 01, 2017 8:23 am ]
Post subject:  Re: WIP: Wizard of Wor

The Worluk and the Wizard of Wor appear only once on the playfield, no other enemies present.

I'm doing my background manipulation very much interleaved, I spin between four background updating states:

* score (28 tiles)
* teleports (6 tiles)
* Doors (12 tiles)
* Box timers (up to 4 tiles)

and the memory map: https://i.imgur.com/ZoXgCe7.png .. which shows 14K of PRG left (but I haven't implemented the rest of gameplay yet.)

-Thom


p.s. And maybe the sprite CHR rom has enough space, because I calculated the space for all 6 different sprites, with 6 tiles each, with 6 possible states + 36 tiles for the player shooting, so that means 252 tiles... which once you add in the 3 radar dots and the laser, that's all the cells....wheee.)

Author:  tepples [ Sun Oct 01, 2017 8:30 am ]
Post subject:  Re: WIP: Wizard of Wor

You should be able to store the CHR data in PRG ROM and copy it to CHR RAM, following these instructions. Then in levels with normal enemies, you can load their tiles, and in levels with the bosses, you can load their tiles.

Author:  tschak909 [ Sun Oct 01, 2017 3:44 pm ]
Post subject:  Re: WIP: Wizard of Wor

tepples wrote:
You should be able to store the CHR data in PRG ROM and copy it to CHR RAM, following these instructions. Then in levels with normal enemies, you can load their tiles, and in levels with the bosses, you can load their tiles.


Cool! Thanks! :)

-Thom

Author:  tschak909 [ Mon Oct 16, 2017 10:08 pm ]
Post subject:  Re: WIP: Wizard of Wor

Am A/Bing my game/vs the arcade...not happy with the walk cycles.. going to mess with the delay and the frames so that the walking tweens are close enough.

Yeah..yeah...procrastinating on the shooting...but this is part of me trying to make sure what I have so far will withstand later testing and polishing.

Some may think this is nuts, but I _really_ want this to be good.

-Thom

Author:  tschak909 [ Sun Dec 17, 2017 3:38 pm ]
Post subject:  Re: WIP: Wizard of Wor

Am curious.

What do you guys do, to rekindle motivation? This year has been very stressful, and I'm having difficulty jumping back in to work on this, even though, I really want to see this completed. What do you guys do when you're faced with a deficit of motivation?

-Thom

Author:  FrankenGraphics [ Sun Dec 17, 2017 4:19 pm ]
Post subject:  Re: WIP: Wizard of Wor

Quote:
What do you guys do, to rekindle motivation? This year has been very stressful


Don't i know it. What i don't know is the proper thing to say here, but...

I do find it helpful to collaborate on projects. Not as much because it's a joint effort but because it feels more "real" than when doing something alone, and because i'm held accountable, which feels good in my case. The realness might be important or nonimportant to you, but it's a theory (i think it was Hegel perhaps?) that people need to "mirror" themselves in their productive/creative output in order to not feel alienated. Having someone you for certain know is interested in the project means you can help each other mirror back and forth. My individual projects may sag behind, but that's ok to me as long as i do something with that sense of realness and recreation. I don't think everyone needs a partner like this, but i think that mirroring (even for oneself) and self-creation is pretty important. Does that resonate with you in some way?

Though if the underlying problem is too much background stress and it won't go away on its own sometime soon, i think the solution might be a structural one. No easy way around that. Not that it's an either or case, thankfully.

If tingering with wizards of wor gives you relief or has given you relief at some point from that stress, then that's good.


What made you think about porting it in the first place?

Author:  Kasumi [ Sun Dec 17, 2017 4:36 pm ]
Post subject:  Re: WIP: Wizard of Wor

I keep my motivation by making the tasks on my todo list smaller.

Code:
Make enemy one
Make enemy two

Might be overwhelming.
Code:
Make enemy one
   Add timer to stop it from smiling before attacking
   Add data for its attack
   create a new attack state
      make it slide while attacking toward the player
Make enemy two

It's may seem more stressful because it's longer, but you're much more likely to be able to "add a timer" than "make enemy one" in one sitting. And sometimes the reason I don't do something is like, "Well, I don't have time to do *task* right now, so I will do nothing." This makes *task* smaller, so it's more likely to fit in a smaller block of time.
Edit:
I guess it also helps to define what you actually want. Sometimes you think you know what you want for enemy one, but the vagueness of what's in your head is actually what's stopping you from making it. The small tasks force you to define what's needed in a real way. "Add ladders" vs "Handle these 5 real cases ladders will need." You're forced to think about the problem.

Author:  FrankenGraphics [ Sun Dec 17, 2017 5:16 pm ]
Post subject:  Re: WIP: Wizard of Wor

kasumi wrote:
but the vagueness of what's in your head is actually what's stopping you from making it.

This is so relatable, in my experience.

Also with a bit of luck, doing the tiniest/least threatening task you can find sometimes starts off an avalanche of creative pushes. Don't force it. A tiny task here, another there. Maybe with a lot of time in between, maybe not. When the avalanche comes, you rarely realize you're in it before the midpoint.

Page 9 of 10 All times are UTC - 7 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/