Frustration...

DarthAT

Member
Good morning game makers,

As the title says, I am very frustrated. Basically, I want to be able to push a block in the adventure module. I have searched the forums, I have searched the internet, I have read documents and looked at decompiled code for nes games (Zelda, boxxle, etc) but I cannot find any help no this.

I know the very basics of ASM, I understand the operands and registers, and I think I get the banks. I understand hex, decimal, and binary conversion, but not exactly how to us them. I get constants and variables. But I have yet to ever write any code that effects or work in a game (I have edited a few files to change affects and things like that).

How is that no one has figured out how to push a block yet? I don't mean this as any disrespect to anyone (you are all a hell of a lot smarter and more knowledgeable about ASM then I am). I am just curious why? Is it that difficult to figure out, am I way in over my head? Has it been figured out and just not shared with the community? I literally (I'm not ever kidding) lay in bed all night thinking about how this can be achieved.

- I don't see how it could be a tile, because it needs to be an object

- I have thought about making the block a monster that does nothing and does not cause me any harm. But I am not sure how to code something that will override the player recoil, and instead push it one tile in any direction. This is the best I have come up with. I printed off every asm file in the adventure module to study and see what would need to be edit or made to accomplish this, but have not had any luck so far.

- Do I create a whole new constant like the player and monster? This method seems way over my head

Anyway, sorry for the rant, I do appreciate all the help I have gotten in the past!

You all rock!

Darth AT
 

smilehero65

Active member
Hi! I totally get your frustration.
There are some things that we want to add, but we're limited in a lot of ways.

I can't provide code for the moment because I am not working on the Adventure Module, but I may point you in the right direction.
First, seems that @tbizzle achieved something similar to a pushing block, you might maybe hold a conversation with him

(Need help with a "Movable Monster" type I made)

Now, I will copy the suggestions I initially made to @tbizzle when asking about the issue:
I'm working right now with the platforming module, so I can't really help you with code :(

HOWEVER, I have my guesses to put you in the right direction.
First, I guess you must make some tweaks with the physics script, to make your pushable block solid.
Additionally, you must edit the solid reaction to make your tile a solid (the solid reaction checks for solid collisions sideways)

I guess in that solid reaction is the place to edit and do the push action.

To actually push the block, you will need to make your tile blank, in terms of graphics and collision.
Then replace that tile with a movable object with the exact same graphics as the pushable tiles.

You will put a timer in that object, and advance to the other Action State that will have an AI that will destroy the object but transform the tile in that position from a blank tile to your pushable tile.


That is actually how it is done in Zelda! (and in Mario when punching a block)

(Sorry if the explanation was a bit overwhelming...šŸ˜…)


Hope this could help you in some way!
 

DarthAT

Member
@smilehero65 , thanks for that!

Haha, so he had the same idea I had, making it a monster and trying to move it.

If I may ask an additional question. You stated that "There are some things that we want to add, but we're limited in a lot of ways." What do you mean by this? Are we limited by the GUI that comes with NESMaker? What exactly is "limiting" us form doing things?
 

smilehero65

Active member
@smilehero65 , thanks for that!

Haha, so he had the same idea I had, making it a monster and trying to move it.

If I may ask an additional question. You stated that "There are some things that we want to add, but we're limited in a lot of ways." What do you mean by this? Are we limited by the GUI that comes with NESMaker? What exactly is "limiting" us form doing things?
Not necessarily by the GUI (but in some cases it is)
I think it comes more of ASM knowledge and the NES limitations.
 

DarthAT

Member
Hmmm, okay. It sounds like ASM is just a lost art and a lot of people are trying to figure it out again (I understand it is a very old). The only things I am interested in making are a game like Zelda and a game like Final Fantasy and those both seem to be the hardest ones to do :ROFLMAO::ROFLMAO:
 

smilehero65

Active member
Hmmm, okay. It sounds like ASM is just a lost art and a lot of people are trying to figure it out again (I understand it is a very old). The only things I am interested in making are a game like Zelda and a game like Final Fantasy and those both seem to be the hardest ones to do :ROFLMAO::ROFLMAO:
Yeah.
I would find Final Fantasy to be more difficult tho.
Adventure games like Zelda are the easiest to do in NESMaker (remember that the tool was specifically designed for Mystic Searches)
 

TheRetroBro

Active member
Hmmm, okay. It sounds like ASM is just a lost art and a lot of people are trying to figure it out again (I understand it is a very old). The only things I am interested in making are a game like Zelda and a game like Final Fantasy and those both seem to be the hardest ones to do :ROFLMAO::ROFLMAO:
when I cant find a solution i will fake it to make it appear as what i want to do is happening.

maybe when you "push" the object it destroys itself and appears in on the next tile over? so this make its appear as its being "pushed"

Just maybe a suggestion, ive found myself really thinking outside the box for alot of things when it comes to implementing what i want for my game
 

dale_coop

Moderator
Staff member
In NESmaker, when you create an object as an "NPC", it will almost behave like a solid block. You would "just" need to make small modifications to have a similar object, that you can move position when pressing/holding an input script.
 
Top Bottom