Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,491,656
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-27-24 07:54 AM
Guest: Register | Login

Main - Posts by AnAxemRanger

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

AnAxemRanger
Posted on 12-28-11 04:29 AM, in Legend of the Axem Rangers - 6/6/16 Version 3.1 release, fixes those game-breake Link | Quote | ID: 148931


Snifit
Level: 37

Posts: 143/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Hey all, I've been informed that there is an enemy spell or two in this game that might cause you're game to freeze. More specifically, the "Pollen Nap" attack. If you're game does freeze when this attack is used, it may be your emulator's fault.

I tested this entire hack using ZSNES ver. 1.36 and I've never had any freezing issues with spells. So if something like this happens to you, I recommend using ZSNES ver. 1.36.

AnAxemRanger
Posted on 12-29-11 04:47 AM, in SMRPG Screenshots/videos/etc Link | Quote | ID: 148949


Snifit
Level: 37

Posts: 144/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Dang, M.E.R.255, some of those are very good looking.
You may not know much about the Lazy Shell program, (no offense. You'll learn more as you tinker around and learn how stuff works.) but you're pretty good with sprites. I love the Spiky crustacean thing. Also, lol Heavy Troopa bathtub.

Do you take requests at all for specific sprites?

Also, it would be pretty sweet if you could also put these sprites in a format that would it easily added to Lazy Shell.

AnAxemRanger
Posted on 12-30-11 04:40 AM, in Legend of the Axem Rangers - 6/6/16 Version 3.1 release, fixes those game-breake Link | Quote | ID: 148956


Snifit
Level: 37

Posts: 145/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Posted by digikid195
Hey axem i tried version 1.36 and it still does the same thing to me. i dont see how or why this is happening but it is and i dont know how to fix it.


Hmm... This is just bizarre. Has anyone else had this same problem at all?

AnAxemRanger
Posted on 12-30-11 06:14 AM, in Questions about lazy shell editor Link | Quote | ID: 148958


Snifit
Level: 37

Posts: 146/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
I'm sure there are others who could explain stuff a lot better than I could, but I'll give it a shot.

Posted by digikid195
Hi everyone. I have a few (well rather alot) questions about the Lazy Shell editor and how to use it. First and this is the biggest problem I have is understanding how to the scripts work. I have no idea how to build a correct script of anything weather it be a battle script, action script or event script. I just don't understand how to works. If I could understand how that works I would be able to tackle the rest of the editor.


Incoming long post:

The easiest way to learn how it works would be to look at the original game's event scripts and compare them to what you know they do. For example, Take that event at the beginning of the game in the 2nd room of Bowser's keep. The event where when you stand in a certain spot, Mario stops moving, the two Terrapin guards take notice of him, move forward, swing their fists, and then a battle begins. Remember that event and keep it in mind. Then go into Lazy Shell, and open up the "Levels" tab. Then go to that particular room using the search feature. (simply input "Bowser's Keep 1st time" or something similar and you should see a few options. Choose the second room since it's the one we're using as an example.) Look at the "event fields" of that particular room and look at the events listed. There is only one event to choose from, so that makes things simple. Click on this event and it should automatically be opened up in the main "events" tab of Lazy Shell. It is event #2497. While we read through the event, keep this "level" open.

Now let's break down this event and walkthrough it step by step.

First off you'll see "if set, mem... jump to $whatever "
and "set mem..."

An important thing to know is that events don't just disappear when they're run through.
The first command checks to see if a certain bit of memory has been sit. If that bit is set, then jump to the command located at that particular offset. In this case, it would jump to the "return" command which signifies the end of an event and goes back to the game.
Generally, bits of memory only get set if an event script tells them to.
The very next command sets the particular memory bit that the first command looks for. What this does is makes sure this event doesn't happen again. The first time you touch this event and activate it, the memory bit command 1 looks for isn't set, so it goes through the entire script. The second time and beyond, the memory bit is set, therefore it skips to the "return" command which ends the script. This way, you don't end up fighting an endless army of terrapins over and over again.

"Freeze all objects until return" does exactly what it says. It freezes all other NPCs not involved in this event until the event reaches the "return" command. This way, you won't have other Terrapins walking into you during this event.

Next we see, "Obj: NPC #0, length: 32 bytes, sync = true"

Again, let's break it down.
This means that the commands which follow it (until the commands stop being indented) all pertain to NPC #0. To see what NPC #0 actually is, once again go back to the "levels." In this particular level, NPC #0 is a Terrapin. So all these commands will make this terrapin do stuff.
The "length: 32 bytes" just says how many bytes worth of commands you have that pertain to NPC #0. Nothing to worry about right now.
"sync = true" means that this list of commands will be happening at the same time as other commands with a "sync = true" command. If we look further down, we'll see that there is a similar command line to this one, but for NPC #2 instead of #0. NPC#2 is also a terrapin, so event will have two Terrapins doing the same thing.

Next is "seq playback..." Yada yada.

This makes whatever character it pertains to (remember: it's still NPC#0 since it's still indented and underneath the "Obj: NPC #0 command") perform an animation of some kind. It might help to open up the "Sprites" section of Lazy Shell right now.

"sprite +=" does what you might think it does. It changes the "sprite #" according to Lazy Shell's sprites section. For example, we see that a Terrapin (walking) is sprite #237. If we used += 1 it would do an animation using the one of sprite #238. "Sprite +=" will almost always be 0. In some rare cases, you may use += 1 or += 2.

"mold = true/false" determines if this particular command is dealing with a full animation sequence or a simple mold (still picture).

"playback once = true/false" determines whether or not the animation only plays once, or keeps repeating until the sprite is given a new animation command.

"seq = #" determines which animation sequence (or mold, if mold = true) we're using. In this case, it's sequence #2, which shows the Terrapin stumbling backwards.

"mirror = true/false" determines if the mold or sequence looks normal, or is flipped around (like looking in a mirror).

Now, let's keep moving on down.

"Delay, frames (8-bit): ##" pauses the script for however many frames you want. Frames are very short amount of time. I don't know how many FPS (Frames Per Second) this game has, but suffice it to say you need a significant amount of frames paused for there to be a noticeable difference in the game. The max amount of frames you can delay with one single Delay command is 255. However, the 16-bit command allows you to delay more frames, but takes more bytes of memory to do so.

As we progress through this entire event script, I will only go over commands I haven't already gone over.

Next new command is "playback, set speed..."
"set speed =" determines how fast the sprite will move. By double-clicking this command, we see that "set speed = 1" speeds up movement by 2x. Speed 0 is normal speed, speed = 2 speeds up by 2.5x, etc.

"shift =" and "seq =" determine what will be affected by this speed change. If "Shift = true" that means the sprite will move with that amount of speed if he moves around the level. If "seq = true" the animation that sprite is going through will speed up by the amount specified in the command. In this particular example, the sprite's animation is moving at 2x speed, but he is still moving at normal speed when he actually changes location.

"Shift southwest, pixels..." Do I really need to explain this one? You could probably figure out that this will move the Terrapin southwest 24 pixels. Or in other words, 24 pixels closer to the bottom left corner of the screen.

"Playback sound" will play a sound. In this case, a terrapin winding up his fist for a punch.

Now look at that other command highlighted in blue. This now means we are done with NPC #0, and the following indented commands pertain to NPC #2 (another Terrapin).
You can also see that the commands underneath it are the same. We also know that the Terrapins are supposed to match each other's movements in game. Everything checks out here... except there is no "playback sound" command. This is okay. One sound does the work for both characters.

Moving on down to unfamiliar commands, "Obj: NPC #2, stop embedded action script" keeps the Terrapin from doing anything else. No more moving for him. We're about to fight, so we don't need him to move anymore anyway.

"Engage battle, pack 1" makes the gang fight a particular group of enemies. In this case, Pack 1, which if you look up is a group of 4 Terrapins.
"battlefield:" determines where the fight takes place. Simple.

The next command is important: "if clear, mem 00:7040, bit: 0, jump to $####"
You'll also notice a "Reset Game" command underneath it. What this does, is tells the game: if the player gets a game over, reset the game. If the player won the fight, skip the reset command and go to the next command instead. In your future event scripts, always be sure to put these two commands after your battles. Otherwise, you could lose a fight, but the game would still think you've won.

"Obj: NPC #0, remove" does just that: it removes that NPC. You just beat the Terrapins in a fight, so now they must die.

"unfreeze all objects" lets those Terrapins move again after we froze them in the beginning of this event.

"Fade-in from black (async)" is another important command for post-battles. The screen automatically fades to black to start a fight, so you need to get rid of this black screen when the fight is over so you can resume play. The "async" just means it won't happen at the same time as any other commands. If there were a bunch more commands after it, they'd wait patiently until the screen was fully light again.

Last but not least is the ever important "return" command. This ends you're event and stops the game from looking up any other commands. If you didn't have this at the end of this particular event, the game would continue onward to event #2498 which could horribly glitch up the game. The return command helps us keep things neat and organized.


And that ends our tutorial on this particular event. I know there are many other commands for event scripts, but let's start out slow.

As was said before, the easiest way to learn is to look at an event already in the game, see how the creators of the original game did it, and then copy them. But at the same time, look at those commands and try to figure out what they do based on the context.

Posted by digikid195
My next question is: after the beginning scene were bowser captures peach and take her to his castle how can I write a script to make Mario appear at a different location then in the first room of bowsers keep?


I think the event that controls that very beginning sequence is completely unchangeable. In other words, no. He has to start in that room.

Posted by digikid195
My final question (for now at least) is: How can I make it where I can do previews of the my work in the first room of bowsers keep. (where Mario first appears at) because when i make lets say a battle in that room, when i go to preview the rom there is no location for Mario so when I click preview and it bring the emulator up its just a black screen with that music playing. Thank you for anyone and anyone that can answer my questions. It is much appreciated


If you're saying you've actually changed the first event to change the location Mario starts at, see the above answer. Also, when making an event where you have Mario go to a new level, be sure to have a "fade-in from black" command afterwards. Otherwise it will stay black.

Sorry for the incredibly long post, but if you're understanding of Lazy Shell has increased even a little bit I've done my job.

AnAxemRanger
Posted on 12-30-11 06:19 AM, in Legend of the Axem Rangers - 6/6/16 Version 3.1 release, fixes those game-breake Link | Quote | ID: 148959


Snifit
Level: 37

Posts: 147/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Posted by digikid195
well i managed to get past it. i had to cheat though. i had to go into the lazy shell editor and edit the stats of the piranha buds to make them easier to beat. i had to kill them before they could use there moves. sorry for cheating and editing your hack. i probably should have asked first...


Nah, that's okay. Do what you have to do. However, if another enemy uses this attack (I can't remember if any others do off the top of my head) let me know if they can use it normally without messing up your game.

Also, like I said before: if anyone else experiences this problem, please let me know. So far it's an anomaly that has only happened to one person. But please let me know if this happens to anyone else.

AnAxemRanger
Posted on 12-30-11 12:34 PM, in Questions about lazy shell editor Link | Quote | ID: 148962


Snifit
Level: 37

Posts: 148/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Actually, because of glitches and stuff with my Axem Rangers hack, I've been limited to using Lazy Shell ver 2.5, and its previewer never worked right for me, so I have no real experience with the previewer function.

But if I had to guess, I would say that for the previewer coordinates, you would input the same coordinates Mario normally starts at in whatever room you should be in. But answer me this: if you press the jump button, can you hear Mario jump? If so, then that means either you somehow got the camera off of Mario and into some corner of the universe with no graphics to display, or you forgot to fade-in from black. The latter is more likely. In any event script that changes Mario's location to a different level, you should have a "fade-in from black (a-sync)" command immediately after the level change.
But like I said, I have no real experience with the previewer function, and as such I have no real understanding of how it works so I could be totally off base. You're probably better off if someone else answered this particular question.

AnAxemRanger
Posted on 12-31-11 07:07 AM, in Questions about lazy shell editor Link | Quote | ID: 148972


Snifit
Level: 37

Posts: 149/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Well I can give you a basic outline. Once again: incoming really long post.

If you want it to happen immediately upon entering the room, giving the player no time to prepare, here's what I might do.

First off, leave the exit field the same. In the "levels" section, exit fields are the yellow blocks and tiles that show up in the level. In other words, don't touch it. The thing you'll want to change is Bowser's Keep Area 2's "entrance event."
Once again, open up Lazy Shell's "levels" section and look up Bowser's Keep 1st time area 2.
To find any particular area's entrance event, look near the top of the screen. On the right side of the top of the screen, you'll see the word "music" followed by whatever song is supposed to play in that level (this is the easy part, but this isn't really important right now). Anyway, immediately left of that, you'll see "event#" followed by the area's entrance event.

In this case, it's event #2498. Before we go on, let's decide right now to focus on only the magikoopa and completely ignore the Terrapins inside this particular area.

Now you have a couple of options. You can either choose to:
1. overwrite event #2498 to be your new magikoopa event, or
2. you can look through the event scripts and find a blank one to work with.
If you choose 1. you'll need to delete all the various commands in event #2498. (Actually, you don't necessarily need to delete ALL the commands. You can keep commands that you know your event might also use, but for tutorial purposes, let's just say you need to delete all of the commands in this script to start with a clean slate.)
If you choose 2. you'll need to change bowser's keep area 2's entrance event to be event# whatever new event your going to be using. Let's say for example, you choose to write an event at event # 2000 (which actually is a blank event). Then, you'll go back to the levels section and change bowser's keep area 2's entrance event to me #2000 instead of #2498.

Either way, now that we've got a blank event, let's start writing our event! I'm going to keep things very simple this time around. Later on, you may learn how to make an enemy appear with magic effects and sounds and such, but for now let's keep it simple.

Let's say that Magikoopa is already in the room when Mario walks in, so as soon the screen fades in from the black, Magikoopa is already standing in front of you. For starters, we need to make sure Magikoopa's sprite already exists in that room, so when the event script calls for him to do stuff, he'll actually be there. To do this, go back to the "levels" section. Now look towards the top left area of the screen, and click on "NPCS." Now you should see 7 NPCs listed. These are all Terrapins. But these aren't important right now.
Now click on NPC #4, then click on the icon that says "Insert a new NPC after the currently selected NPC." This is what we want to do: Insert a new NPC after NPC 4, which is technically the last NPC listed. NPCs that are indented in the list are just copies of the non-indented NPC that is above them. In other words, NPCs 1, 2, and 3 are copies of NPC 0, and NPCs 5, 6, and 7 are copies of NPC 4. This makes NPC 4 the last NPC in the list, and when adding NPCs, it's generally easier to make whatever new NPC you're adding be the last one in the list. Otherwise, you could mess up other events in the room. Since you're a beginner, let's keep things easy to work with.

Now that we have NPC #8, we need it to be Magikoopa. We also need to edit his properties to suit our needs. Click on NPC #8 and look immediately to the right and you'll see a list of various NPC properties, including NPC TYPE, TRIGGER, etc. Now let's go through these one by one.

NPC TYPE determines whether the NPC is an object, which makes the NPC trigger the event specified below it (you can see what event that NPC has by looking just a little bit lower.) if the player fulfills the requirements underneath the TRIGGER option, a battle which will make a battle ensue if the player activates the TRIGGER option, or a treasure which will give the player a treasure depending on the memory bit specified if the TRIGGER is triggered.

TRIGGER determines how this particular object is activated and will play whatever event, battle pack, or treasure attached to it. The TRIGGER option and the NPC TYPE option do not matter to us in this case. These two things only apply if the NPC will be in the level for the character to interact with. Magikoopa will be controlled entirely by the entrance event, which activates the moment the player walks into the room, so the player does not have a chance to interact with the NPC by himself. Therefore, these two things don't matter in this particular case.

Next is NPC#. We need this NPC# to match Magikoopa's NPC#. To find this out, click on the 2nd right-most icon directly above where it says "Partition #." It's hard to see, but I think it shows a little picture of golden Belome. This brings up the NPCS window. Now we need to search for magikoopa. In the search bar, type in "magikoopa." Now we see several options. Let's click on the first one. It's NPC 57. In the top-left most box in the NPCS window, type 57. We see it's the blue magikoopa. You said you wanted the red one, right? So let's go back to search and try the next option, which is "red magikoopa." It's NPC 190. Let's put this in the same box in the top left. Bingo!

Now that we know what NPC it is, let's exit out of this NPC window and go back to the levels section. Back to NPC #8 in this level. Now where it says NPC#, we put the one we just got, NPC #190.

Now let's keep moving down. Event# isn't important right now for reasons stated above. Action# determines which action script the NPC will be using. You'll have to look up the action scripts to find one that'll do what you want. But for a basic walking in place action, I think #3 will work.

Speed+ determines how fast the NPC moves. We want him to move normally, so let's keep it 0.

Show NPC determines whether or not the NPC is actually visible. If this button is greyed out, the NPC will be invisible. That is bad in this case. So make sure it's not greyed out by clicking on it.

NPC#+, Event#+, and Action#+, aren't important to us right now. These apply to the indented NPCs (the "copies") we talked about earlier. I'm getting tired of typing, so I won't go over why these are useful quite yet.

The 3 coordinates below that are the NPC's isometric coordinates. Now we said we wanted Magikoopa to appear somewhere in front of Mario right? So now we need to know where Mario appears. It might help to turn on the "isometric grid" option right now. To turn it on, click on the icon near the top of the screen that looks likes a number sign going diagonally right next to a normal number sign. Now we know that Mario starts in this room on the picture of Bowser on the carpet. Move your mouse over that spot and we see that it is isometric coordinate (4,95). Now we want magikoopa to spawn a few spaces in front of him, so move your mouse a few coordinates northwest. I think (6,92) looks like a reasonable choice. So now let's go back to NPC 8 and put his coordinates as (6,92,0) The Z coordinate determines height, and since we want Magikoopa to be at normal ground level, let's keep it 0.

Next is "Facing" which determines which direction the NPC is facing. We want him to be facing where Mario will be starting, which will be the lower left, or southwest corner of the screen. So let's choose SW which I'm sure you could guess by now stands for "southwest."

Underneath all of that you'll see several boxes to check that do different stuff. You probably don't need to worry about these right now. The event we're going to create should take care of that stuff for us.

Wow, all of that and we haven't started an event script yet. Dang.
Well let's do it already!

Since we want Magikoopa to be there when Mario enters, let's make sure he is there before we do anything else. Let's start with the very first command.

In the "objects" category, choose the first command: "action queue..."
Now we go down to "current command properties..."

For our object, we're talking about NPC#8, which is Magikoopa, so let's choose NPC #8. Next is queue type. This can do a number of things, but luckily making an object appear is simple. Just choose "Show object." Then click "insert command"
Bada Bing! Now we know he'll show up.

Next, is a very important command. We need to remove the black screen.
So let's choose "screen effects" and choose the "fade-in from black (async)" command. Now we can actually see what the heck is going on.

Like I said, I wanted to keep this event simple. So let's just only do what you said you wanted to have happen: we'll have Magikoopa say something and then initiate a battle.

So now let's make him say something. Go to Dialogues and then choose Run dlg... Then in current command properties, choose whatever dialogue you want to use. Pulling a random number out of my hat (you don't have to use this number if you don't want to), let's say dialogue# 1000. Just remember: you'll need to go in the dialogues section of Lazy Shell later and edit this particular dialogue to say what you want him to say.

Honestly, I'm not entirely sure what "above obj" does, but a safe value I use for almost all my dialogues is mem $70A8. I'm not sure what that even means, but it works.

Next are dialogue properties to check or uncheck. Closable means the player can close the dialogue when it's over by pressing A. If you don't check this, the dialogue would never end unless you had a "close dlg" command later in the script, but we don't want to do that. asynchronous means nothing else in the event script will be happening during this dialogue. It's a good idea to check this, otherwise the battle might begin before the dialogue is even over. Multi-line will determine if the dialogue will go across 3 lines, rather than one. Once again, you should check this. Paper BG determines if the dialogue will have a Paper Background or if it will be in blue text without a background. Yes, you should check this.

Next we get to the all important battle.
Choose the "Engage battle with pack..." command. Choose the pack number that has Magikoopa, and also choose the background of your choice.

Now we need the commands that determine if a gameover happened or not.
Click on the Memory category and choose the "if clear, mem..." command.
Keep the address and the bit value the same. 7040: 0 is the "game over" memory bit. For now, don't worry about the "then jump" command. Just insert the command as is.

Next choose the "reset game, choose game" command which can be found in the "menus" category.

Next, we need to get rid of Magikoopa because Mario killed him. So let's remove him. Removing an object is very similar to calling it. In the "Objects" category, choose "Action queue..." Seem familiar? It should! For Object, choose NPC #8. For queue type, simply choose remove object. Now insert it. This gets rid of NPC#8.

However, some NPCs have a tendency to reappear upon reentering the room. To counter this, we need to remove him from the room's data a little more forcefully. So now, go to the "objects" category again, and choose, "set object presence..." For level, choose Bowser's Keep 1st time area 2, which is number 4. For object, choose NPC #8. Now for "presence is..." we see a simple box to check that says true. We don't want it to be true, so leave it unchecked to be false. This should get rid of him.

Like I think mentioned to you before, the game automatically fades to black for battles. Now un-black screen it. Insert another "fade in from black (async)" command.

Last but not least, let's insert a "return" command to finish off this simple event.

We're done now, right? WRONG! Let's go back up to that "If clear, mem $7040, bit: 0, jump to $XXXX" command. We now need to change this command, so double click on it. For the $XXXX, change it to match the last four digits of the address of the command immediately AFTER the reset game command. In this case, it's the "remove obj" command, right?
Let's say it looks like this:
[1F6563] Obj: NPC #8, remove
then you'd change the $XXXX to say $6563. And of course, hit "apply changes" to make it happen.

Now this should conclude our simple fight event. Unfortunately, this event will happen every time you enter the room, which isn't necessarily a good thing. To change this, you'll have to use memory bits. I've been typing for awhile now, and I'm tired. If you can't figure out how to use memory bits, I'll try to help.

AnAxemRanger
Posted on 01-01-12 05:21 AM, in SMRPG Screenshots/videos/etc Link | Quote | ID: 148993


Snifit
Level: 37

Posts: 150/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Man, I wish I had any sort of spriting skills. You two are pretty good at this.
Anyway, if either one of you are taking requests, I'd really like to see the Koopa Kids.
Remember those guys?:
http://starsmedia.ign.com/stars/image/article/105/1052937/big-boss-of-the-day-the-koopa-kids-20091207040557944-000.jpg
I'm working on a hack (yes, another one) and I'd really like to see those 7 guys in it, but spriting is something I've never been able to do very well. If you could make walking animations, attack animations, spell casting animation, and a knock back animation for when they get hurt, that would be fantastic.

... and that Valentina is WAY over the top. But meh, whatever floats your boat.

AnAxemRanger
Posted on 01-01-12 06:09 AM, in Questions about lazy shell editor Link | Quote | ID: 148994


Snifit
Level: 37

Posts: 151/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Posted by digikid195
Thank you so much for all this information! The only problem I have is when I tested the event the magikoopa is invisible but the rest of the script works fine... Oh! and the script repeats its self in an endless loop. I'm not sure what I did wrong.


He's invisible? That's odd... Would you be able to send me a screenshot of that particular event script? I don't know why he would be invisible, but if I saw the actual event as it looks in Lazy Shell, I might be able to figure out why he's not there.

As for looping endlessly, that is to be expected. In the simple example I gave in the previous post, I didn't make it not loop. To make it so this event only happens once, you need to set a memory bit of some kind. First off, you need to find which memory bits you can spare. But for this example, let's just pick a random one. Let's say mem $7065, bit 4.
NOTE: like I said, this is just a random memory address and bit that I pulled out of thin air. It does NOT necessarily mean you should be using it.

First off, go to the very end of our event. Now AFTER the return command we have there, add another "fade-in from black (async)" command as well as another "return" command. Now you may be thinking, why are we adding stuff AFTER the return command? The return command ends an event and makes the game stop reading commands. Why would adding anything after it matter? Don't worry, I'll explain why this is important in a minute.

Now back to the memory bits and stuff. Near the end of our event, let's say right immediately before our return event, (before the FIRST return event, not the return event I just had you add.) you'll want to add a "set mem $7065, bit: 4" command. Remember, that's the memory bit I pulled out of thin air before.
If it helps, think of this as turning a switch on. Normally, the mem 7065, bit: 4 switch is off, but successfully beating Magikoopa and progressing through the event turns this switch on. It should only turn if we successfully beat Magikoopa, which is why it's a good idea to stick it near the end of our event.

Now let's make that switch do something. At the beginning of our event, yes the very beginning, in other words, it should be the first thing listed, let's insert the "if set, mem..." command. For address, let's put 7065 and for bit, put 4. Once again, this is the same bit I pulled out of thin air before. For the bottom part of this command, where it says "then jump" we need to put the last four digits of the address of the command we want to jump to. In this case, we want to jump to the second "fade-in from black (async)" command. I'll explain why in a sec.
A command's address is located to the far left of that command. It's the 6 digits in brackets. For example, it may look something like this:
[175F5E] --Fade-in from black (async)
So now, back to our "if set, mem..." command, now we know where we want the "then jump" to jump to. So for this, like I said before, type in the last 4 digits of the address of the second fade-in from black command.

Now if you've done everything correctly, this should finish our event (for now. I'd still need to see the event to know why Magikoopa doesn't appear). So let's run through what we just did:
We added to this event commands that say: if Magikoopa has already been spoken to and successfully fought, ignore this event and simply fade-in from black and let Mario do whatever the player wants like normal. If this is the first time we've seen this event, then run through the event and let the player beat Magikoopa. If he does beat him, then turn this switch on so the player won't have to fight him again.

Bada bing. There should be no more looping.

Posted by M.E.R.255
This is not an answer to your problem, I'm just letting you know that I've sent you a PM and that I'm sorry that I haven't done this earlier. I had no clue where I could read my Pm's at. ^^"

And damn AnAxemRanger, how come I don't receive that much information from you like digikid195 did? =P


Um... Sorry? If you want some help with something you could post it here and I'll see if I can help. But I thought you were doing sprites and animation stuff like that right now? Like I said before I'm pretty helpless in that department myself so you'd be better off asking someone else.

AnAxemRanger
Posted on 01-01-12 06:15 AM, in Announcing work on a full SMRPG hack Link | Quote | ID: 148995


Snifit
Level: 37

Posts: 152/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Mecakoto! I thought you were dead! Were you one of the testers for my hack? Figures you'd come back AFTER I release it... jk =D

This hack does sound promising. Can't wait to play it!

What do you need help scripting? Are you talking just action scripts? What exactly is it that you're having trouble with?

AnAxemRanger
Posted on 01-01-12 01:36 PM, in Questions about lazy shell editor Link | Quote | ID: 149000


Snifit
Level: 37

Posts: 153/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Posted by M.E.R.255
@AnAxemRanger, I wasn't mad or anything. ^^
I was just saying that as a joke. Usually when I use a smiley, it's nothing negative.

And well, I am currently still playing around with the program, so if I get stuck, I could let you knoooo...oh! I did remember something that made no sense to me! When looking at the hammer animation (weapons, ANIMATIONS section), I have no clue what all the AMEM and {NOOP} stuff means. I would like to add new weapons later on, so I it really would help me out knowing what means what.


Yeah, I figured you weren't actually mad. If I did think you were mad, I probably would have responded in a much ruder and nastier way. Or I simply would have posted "u mad bro?"

Anyway, {NOOP} is an empty address as far as I can tell. if you see a NOOP, consider it a free space to add something if you should so desire. At least that's as far as I can tell. However, I've noticed that if you put a lot of these in a row it can cause a bit of lag in whatever script it's in. I guess the game takes a bit of time to read through all of these commands, even if they're empty.

Now AMEM and OMEM, I honestly don''t know what those do. But I do think AMEM $62 has something to do with timing hits. Like if you successfully time an attack, AMEM $62 gets set to a value of 1, and you can usually see a command in weapon scripts that says, "if AMEM $62 = 1, jump to..." the second half of the attack that only shows up when you time a hit. But outside of that, I really don't know what they do. When I make my own spells and attacks and stuff, I usually just edit an already existing script and leave those commands alone since I don't know if adding or removing them will wreck my game.

AnAxemRanger
Posted on 01-01-12 01:50 PM, in SMRPG Screenshots/videos/etc Link | Quote | ID: 149002


Snifit
Level: 37

Posts: 154/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Posted by Kawa
I don't think she needs a boat to float.

Those aren't buoys, if you know what I mean.
*wink, wink, nudge, nudge*

@M.E.R I realize that creating seven characters from scratch is a pretty difficult thing to ask of someone. Don't feel pressured to do it if you don't want to.

If you're asking how to embed a video into a post, the easiest way is to look up whatever video you want to share on youtube, click on that video to watch it, click on the share button, and then click embed. Then it gives you a code that can just copy and paste into your post, and then you got yourself a video.

AnAxemRanger
Posted on 01-02-12 06:44 AM, in Announcing work on a full SMRPG hack Link | Quote | ID: 149009


Snifit
Level: 37

Posts: 155/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Okay, so you need some help with action scripts. What specifically are you having trouble with? Is there anything in particular you're trying to understand but can't? Like certain commands or how to put them together?

AnAxemRanger
Posted on 01-05-12 04:42 AM, in We have reached an impasse, and now a wall! Link | Quote | ID: 149063


Snifit
Level: 37

Posts: 156/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Don't close this site down guys
This board has the best Super Mario RPG hacking community I've been to. I also enjoy seeing the various other hacks and utilities that people come up with in the other hacking subforums on this site. Think about the hackers!
I come on this site more than most other sites, even if I don't post outside of the SMRPG board that often. But if that's what it takes to keep this site up, I'll try to post more in other subforums as well.

This is the place to be!

AnAxemRanger
Posted on 01-05-12 06:11 AM, in Forced theme Link | Quote | ID: 149072


Snifit
Level: 37

Posts: 157/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
I think it's pretty good. I say keep.

AnAxemRanger
Posted on 01-06-12 04:58 AM, in What games are you playing right now? Link | Quote | ID: 149191


Snifit
Level: 37

Posts: 159/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Anyone play Zelda: Skyward Sword yet? I feel like it's more story oriented and there aren't as many sidequests as I've come to expect from a Zelda game nowadays. Still, it's a pretty fun game. What do you all think?

AnAxemRanger
Posted on 01-06-12 05:02 AM, in Post your desktops! [56K] <-- Duh.... Link | Quote | ID: 149192


Snifit
Level: 37

Posts: 160/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Who doesn't love the extinct, large, flightless bird of New Zealand?

AnAxemRanger
Posted on 01-06-12 05:10 AM, in Post your desktops! [56K] <-- Duh.... Link | Quote | ID: 149195


Snifit
Level: 37

Posts: 161/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
Posted by blackhole89
Posted by AnAxemRanger
Who doesn't love the extinct, large, flightless bird of New Zealand?
Is that thing in the corner of its mouth its... eye?

It sure makes it awkward to eat stuff. There's a reason why they went extinct =P

AnAxemRanger
Posted on 01-06-12 06:24 AM, in How often do you check or use this section of the forum? Link | Quote | ID: 149208


Snifit
Level: 37

Posts: 162/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
I check this place every time I see there's a new post. I check to see if anyone is releasing something or working on something that tickles my fancy.

AnAxemRanger
Posted on 01-06-12 06:55 AM, in Ill cat Link | Quote | ID: 149216


Snifit
Level: 37

Posts: 163/279
EXP: 337861
Next: 392

Since: 12-06-09

Last post: 2864 days
Last view: 108 days
A move can be very stressful to a cat. How long ago did you move? If it's very recently, just wait awhile, treat your cat like normal, and see if he acclimates to his new home.

As for food, even if it's "higher quality" food, the cat won't necessarily like it. We've bought our cats more expensive, higher quality food before, and one of the cats will eat it like normal while the other one will turn her nose up at it. If your cat hates his new food, that might be why he's skinny now. You should try switching to the old stuff for awhile to see if that helps.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14


Main - Posts by AnAxemRanger

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.245 seconds. (337KB of memory used)
MySQL - queries: 135, rows: 167/167, time: 0.235 seconds.