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

0 users currently in Super Mario RPG Hacking | 2 guests

Main - Super Mario RPG Hacking - Event Script tutorial New thread | New reply


Elementalpowerstar
Posted on 02-09-09 03:55 AM (rev. 11 of 02-11-09 10:02 PM) Link | Quote | ID: 100375


Paratroopa
Level: 29

Posts: 59/155
EXP: 144407
Next: 3478

Since: 12-29-08
From: ---

Last post: 3799 days
Last view: 3692 days
Event Script v1.0 FINAL.
Any additions will be pictures, videos, etc.

EVENT TUTORIAL...

NOTE: The ROM address speciifed in multiple commands is the number after 1E in the far left of the command.

I.E. "[1ED532] Obj: Mario, length 23 bytes, sync = true"

_______________________________________________
ACTION QUEUE...

This enters a command that makes the set NPC
do that list of commands below it. Here are the list of Objects to control:

000 Mario: Controls the player.
001 Toadstool: Not exactly sure.
002 Bowser: See above.
003 Geno: See above.
004 Mallow: See above.
005 DUMMY 0x05: Controls nothing.
006 DUMMY 0x06:Controls nothing.
007 DUMMY 0x07:Controls nothing.
008 Character is Slot 1: Controls character in slot 1, aka, Mario.
009 Character in Slot 2: Controls character in slot 2. Usure what this means.
010 Character in Slot 3: Controls character in slot 2. Unsure what this means.
011 DUMMY 0x0B: Controls nothing.
012 Screen Focus: Controls the screen. This is used for panning the screen to a certain position. Try using shift steps/16px units instead of Shift to Isometric coords.
013 Layer 1: Controls the movement of the first layer of graphics on themap, I.E. tables, stools, etc.
014 Layer 2: Controls the movement of the second layer of graphics on the map, I.E. ground, floor tiles, etc.
015 Layer 3: Controls the movement of the third layer of grpahics on the map, I.E. rain, clouds, shadows, etc.
016-020 Mem 00:70A8 - 00:70AB: Controls objects set to that specific address. Your going to need to have some skill to work with these, or set an object to that address.
021 NPC #0-27: Controls the NPC character set to whatever the NPC number is.
_________________________________________________
JOYPAD...

Joypad enable exclusively (reset @ return)... Check the input commands to be used. Resets all to normal at return.

Joypad enable exclusively... Same as above, only it doesn't set it back to normal after return.

_________________________________________________
PARTY MEMBERS...

Activate Party Member... Make the selected party member join or leave the party. To make the character join for the first time, check increment party capacity. After incrementing party capacity, if you want to remove the character, activate the character an additional time without incrementing part capacity. This will make the character not be in your party.

Equip item to character... equips set item to the characters specified. Be sure to select one the character CAN use.

HP -= mem 00:7000, character... Subtract the number of hit points
for the character by reading the stored number
at common memory 00:7000.

Expirence += expirence packet data: There are no commands for this one. Was it even used...?

Restore all HP: Give all characters 100% health.

Expirence Packet - mem 00:700: Gives the
character expirence based on what expirnece packet memory 00:7000 is set to.

_________________________________________________
INVENTORY...

Inventory Store x1, item: Store the set item once.

Inventory Remove x1, item: Removes the item from storage. I assume you actually need to HAVE the item...

Add to coins...: Adds the number of coins specified.

Add to frog coins...: Adds the number of frog coins specified.

FP -= mem 00:7000: Subtracts Flower Points by the number specified in memory 00:7000.

Store mem 00:70A7 to item inventory: Stores the item number set to the memory 00:70A7 to regular item inventory.

Store mem 00:70A7 to equipment inventory: Store the item number set to the memory 00:70A7 to equipment inventory.

Coins += mem 00:7000: adds the number of coins in memory address 00:7000 to your inventory.

Coins -= mem 00:7000: subtracts the number of coins in memory address 00:7000 from your inventory.

Frog coins += mem 00:7000: same as "Coins += mem 00:7000" but with frog coins.

Frog coins -= mem 00:7000: same as "Coins -= mem 00:7000" but with frog coins.

Currnet FP += mem 00:7000: Adds to FP by how much is speicifed in memory address 00:7000.

Maximum FP += mem 00:7000: Raises the max FP by how much is specified in memory address 00:7000.

Restore all FP: Gives the player maximum FP.

_________________________________________
BATTLE...

Engage battle with pack @ 00:700E: Engages battle with the formation number stored at memory address 00:700E.

Engage battle with pack...: Engages battle with pack specified, at which area specified.

___________________________________________
LEVELS...

Open, world map point...: Opens up the world map point specified. Unknown bits 5, 6, and 7 can be checked for use.

Open level...: Opens level specified, at what position specified (XYZ) where mario will appear. Has the option to show message specified in-level and to run the entrance event specified in-level.

Modify layer of level... Modifies layer of level specified. Nothing else is prompted to be specified....

Modify solidity of level... Modifies solidity of level specified. Nothing else is prompted to be specified....
________________________________________
MENUS...

Open, shop menu...: Opens the shop menu specified. So just in case you DONT want to go looking for it, heres a list:

SHOP NUMBER | SHOP NAME AND/OR LOCATION
000 | Mushroom Kingdom
001 | Rose Town: Items
002 | Rose Town: Armor
003 | Frog Disciple Shop, Seaside Town
004 | Molevillie Shop
005 | Marrymore Shop
006 | Frog Coin Emporium
007 | Sea Item shop
008 | Seaside Town Items, Before Yaridovich
009 | Juice Bar (No Cards)
010 | Juice Bar (With an Alto Card)
011 | Juice Bar (With a Tenor Card)
012 | Juice Bar (With a Soprano Card)
013 | Seaside Weapons
014 | Seaside Armor
015 | Seaside Accessory
016 | Seaside Health Foods
017 | Monstro Town shop
018 | Nimbus Land Shop
019 | Hinopio's Shop
020 | Baby Goomba Shop
021 | Nimbus Land Item/Weapon
022 | Croco's Shop 1
023 | Croco's Shop 2
024 | Toad's Shop
025 | DUMMY SHOP
026 | DUMMY SHOP
027 | DUMMY SHOP
028 | DUMMY SHOP
029 | DUMMY SHOP
030 | DUMMY SHOP
031 | DUMMY SHOP
032 | DUMMY SHOP

Open, window...: Opens the selected "window." Choices are as follows:

000 | Choose Game
001 | Overworld Menu (stats, items)
002 | World Map
003 | Mushroom Kingdom Shop
004 | Save Game
005 | Items maxed out
006 | ___ (DUMMY)
007 | menu equip tutorial
008 | new star piece
009 | molevillie mountain (Mode 7 Mine cart level)
010 | ___ (DUMMY)
011 | intro molevillie mountain (Mode 7 Mine cart level in intro sequence.)
012 | ___ (DUMMY)
013 | 7 star pieces
014 | Flower Garden Intro
015 | Enter Factory Gate (falling)

Open, save game...: Prompts the "Save Menu" menu... usually, to save your game. Important.

Open, menu tutorial...: Prompts you to open a menu... it doesn't give specifics. Clarification?

Open, level-up bonus: Opens the level-up bonus sequence. You may need to gain experience before doing this, or just not use it. It might have been used for a common event, I.E. Super Star/ End Battle.
_____________________________________________
DIALOUGES...

Note! If in dialogue choosing, if left without a "if dlg option B" or "if dlg option B/C" is not chosen, then it will continue with the script.

Run dlg...: Runs any of the game's 6045 dialogue sequences. Specify which dialogue to run, what object it's above, if it is closable, to sync with the event, to be more than one line, and have the paper background. If Paper Background is disabled, text automatically floats, and has blue outlines and text instead of black.

Run dlg mem 00:7000...: Runs dialogue number stored in memory 00:7000. Has the option of selecting what object it runs above, weither it's closeable, syncs with the event, multi-lined, or has a paper background.

Run timed dlg...: Runs the dialogue selected, and a number that I believe to be frames. The only options other than those are if it is synced with the event or not.

Append to dlg: mem 00:7000...: End current dialogue being displayed, and add on to the dialogue specified without making the previous one disappear. Options are closable and asynchronous.

Close dlg: Closes the dialogue early, no control by the player.

Un-sync dlg: If asynchronous is unchecked, then it will make other commands stop unless until the end of the dialogue.

If dlg option B selected, jump to... If the secondary option is selected then jump to rom address specified.

If dlg option B/C selected, jump to... Same as the above, only if the third option is chosen, you need to specify the ROM address.
_________________________________________________
EVENTS...

Note!: Most commands require a fade-in black command to continue playing. Stupid rules.

Run synchronous event...: Makes another event run at the same times as the event currently going. Specify the event. The other options are to stop event if the player exits the level, bit 6 and bit 7.

Run Common Event: makes a common event happen. Here are all common events and prompts with each:

NUMBER | EVENT NAME | PROMPTS
000 | Open select game
001 | open overworld menu
002 | open world map point | World Map Points (see sprites or other tutorial)
003 | open shop menu | Shop menu numbers (see shop numbers)
004 | open save game
005 | open items maxed out menu, toss item | Item to throw out.
006 | UNKNOWN
007 | open menu tutorial |
?-000 How to Equip items
?-001 How to use items
?-002 How to switch allies
?-003 How to play Beetle Mania mini-game.
008 | star collenction star piece add
009 | molevillie mountain cart race
010 | UNKNOWN
011 | Molevillie mountain intro
012 | UNKNOWN
013 | star piece endings
014 | garden intro
015 | entering gate to smithy factory (falling scene)
016 | world map event
?-000 | Mario falls to pipehouse
?-001 | Mario returns to Mushroom Kingdom after saving Peach at Marrymore
?-002 | Mario uses Nimbus Bus to go to Bowser's Castle, second time.

Run event (jump to)...: Runs event specified, ends current event.

Run event (sub-routine)...: Runs event specified, used for springboard animation, etc?

Run star piece scene...: Runs star piece event, specify which star event to run. Up to 7.

Run molevillie mountain: Runs the Mine Cart Mode 7 obstacle course game.

Run molevillie mountain intro: Runs the intro for the Mine Cart Mode 7 obstacle course game.

Run character intro title...: Makes a black Bar appear and says the characters' name, or "In...." "From top" is the Y position from the top of the screen where the text is to appear.

Run ending credits: Runs the credits and the parade for the ending.

Run Ecor crash into keep: Runs the scene where Exor impales Bowser's keep and scatters Star Road.
_____________________________________________
JUMP TO...

Note!: I know the least about this catagory of commands.

Jump to...: Jumps to the ROM address specified.

Jump to sub-routine...: Jumps to ROM address specified. No idea what the differnce is.

Loop start, loop count...: Begins a loop process. Whatever is after the loop, is inside the loop. Specifiy how many times the loop section loops. (Too many "loops")

Loop end: Stops loop, begins at top if loop count is 1+.

Jump to script start(A): Jumps to the beginning of the script.

Jump to script start(B): I don't see any noticable difference.
______________________________________________
SCREEN EFFECTS...

Fade-in from black (sync): Fade the screen in from most commands dealing with transistions. This one fades with the other commands.

Fade-in from black (async): Does the exact same as the above command, only it does not fade with other commands, meaning other commands will not start until this event ends.

Fade-in from black (sync) for duration...: Does the exact same as "Fade-in from black (sync)" except you can specify how the fade takes in 8-bit frames.

Fade-in from black (async) for duration...: Does the exact same as "Fade-in from black (async) only you can specify how many 8-bit frames it takes for it complete it's fade.

Fade-out to black (sync): Fades out to black in cooperation of other commands.

Fade-out to black (async) Fades out to black without cooperation of other commands.

Fade-out to black (sync) for duration...: Fades out to black with cooperation from other events for the specified number of 8-bit frames.

Fade-out to black (async) for duration...: Fades out to black without cooperation from other events for the specified number of 8-bit frames.

Fade-in from color...: Fades in from any of these colors for a specified amount of 8-bit frames:

000 Black
001 Blue
002 Red
003 Pink
004 Green
005 Aqua, light blue
006 Yellow
007 White

Fade-out to color...: Fades out to any of the colors listed above for a specified amount of 8-bit frames.

BG Star frame expand: Makes a star-shaped image expand to reveal level.

BG Star frame shrink: Makes a star-shaped image shrink to hide level.

BG Circle frame expand: Makes a circle image expand to reveal the level.

BG Circle frame shrink: Makea a circle image shrink to hide the level.

BG battle frame close: Makes the battle transition occour, but no battle.

Layer tinting, color: Tints the layers specified to the colors specified. (RGB Values 0-254) Only one tint command can be used at a time, but it can tint multiple layers. Speed is unknown, didn't seem to make any difference between 5 and 100.

Layer pixels, size: x...: Makes the pixels of the specified layer as many times as set. (I.E. if size times set to "5" then pixels will be 5 times larger than normal.) Duration in 8-bit frames can be set. Can choose Layers 1-4 to pixelize. This is generally used in blurring the screen.

Palette Transform, set: I'm not entirely sure what this command does, but so far, it seems to set, or fade the palette set identified, if set to glow, it will cause seizure inducing results.

Closing circle effect (non-static), to object: Doesn't seem to do anything, its always set to "Mario, 0px, 0 speed."

Closing circle effect (static), to object: Does nothing but make the screen go black, can set to any object, and size, any speed. Just use the regular BG Circle frame.

Screen, unfixed: Makes the screen unfixed to it's current location.

Screen, Fixed: Makes the screen fixed to it's current location. I can think of mulitple uses for this one command.
___________________________________________________
AUDIO PLAYBACK...

Playback start current volume, track...: Playes the specified track at the current volume.

Playback start default volume, track...: Plays the specified track at the default volume.

Playback fade-in, track...: Plays and fades in specified track.

Playback fade-out track: Fades out the current track.

Playback stop track: Stops the current tracks where it is.

Fade-out track, duration...: Fades the current track out for the 8-bit frames specified, to what volume specified (0-255)

Playback adjust tempo, duration...: Either speeds up, or slows down the current track. Try a varable for 10 as a starting point, and expiremnt from there. Look at script where you give the man the Seed and Water that grows the vine to see what exactly is x2 track speed. DO NOT speed up the track to a number and try to speed up the track again to a lower number. THIS WILL FREEZE THE GAME.

Playback adjust track pitch, duration...: Lower or raise the track pitch. This does not give pitches to raise or lower to, just raise or lower. The duration is how many 8-bit frames it takes to get lower... or something. The track, by default, is already "raised", so your only option is to lower.

Playback stop sound: Stop the playing of a sound. Some sounds need this, as they loop forever.

Playback start, sound...: Start playback of one sound.

Playback start (speaker balance), sound...: Start playback of sound. 0 is for far right sound, 255 is for far left sound.

Playback fade-out sound, duration...: Fades out the current sound by amount of 8-bit frames specified, to what volume specified.

Playback start, sound (sync)...: Starts the playback of a sound effect, and is in sync with the rest of the script. This is the only way to play two or more sound effects at a time.

Playback, slow down track: Same as effect as Lower Pitch, but does it automatically, used in "Game Over" sequences.

Playback, speed up track back to normal: Same as "Raise pitch" but set automatically, similar to "Playback, slow down track."
___________________________________________________
MEMORY...

Note! 8-bit Address can handle up to 255 in value. Do not exceed this value.

Note! 16-bit addresses can handle up to 65535 in value. Do not exceed this value.

Set mem...: sets the memory address bit. Specifiy which address and bit to enable.

Clear mem...: clears the memory address bit. Specifiy which address and bit to clear.

Store a mem a value (8-bit): Store a value to memory between 0 and 255.

Add to mem (8-bit)...: Add a specified amount to the memory bank specified.

Increment mem (8-bit): Increment memory by an 8-bit value of 1. (max 255)

Decrement mem (8-bit): Decrement memory by an 8-bit value of 1. (Max 255)

Store a mem a value (16-bit): Store a value to memory between 0 and 65535.

Add to mem (16-bit): Add a value specified to the memory bank specified.

Increment Mem (16-bit): Increment memory by a 16-bit value of 1. (Max: 65535)

Decrement Mem (16-bit): Decrement memory by a 16-bit value of 1. (Max: 65535)

Store to mem from mem 00:7000 (8-bit): Store the current value of memory address 00:7000.

Store random # to mem: Store a random number in the memory specified less than the number speciifed.

Store to mem from mem 00:7000 (16-bit): Store current value of memory address 00:7000.

Store to mem from mem (choose both, 16-bit): Choose two memories, one to transfer the value, and one to absorb that value.

Exchange mem: Exchange memory values from two addresses. Address one's value becomes adress two's value, and vice versa.

Mem compare to: "Compare to mem a value (16-bit)" I'm not sure what this means.

Object Memory = mem: "Store to mem from mem 00:7000 (16-bit)" I think you need to change this to a more specific name.

If set, mem: If the memory bit is set, then jump to ROM address specified.

If clear, mem: If the memory bit is clear, then jump to ROM address specified.

If mem = (8-bit): If that memory address equals that value, then jump to ROM address specified.

If mem ! = (8-bit): ???

If mem = (16-bit): If that memory's value is equal to the value specified, then jump to ROM address specified.

If mem ! = (16-bit): If that memory's value is equal to the value specified, then Jump to ROM address specified.

If random # > 128, jump to: If the random number created is less than 128, then jump to ROM address specified.

If random # > 66, jump to: If the ranodm number created is less than 66, then jump to ROM address specified.

Double mem: Doubles the memory of the address?

Generate Random # < mem: Generate a random number less than the value of the memory specified.
__________________________________________
MEMORY 00:7000...

Mem 00:7000 = party capacity: Makes momeory address 00:7000's value equal that of your party's current capacity.

Mem 00:7000 = character @ slot: Makes the character selected be stored in the memory.

Mem 00:7000 = open item slots: Records how many open item slots there are and stores them in that memory.

Mem 00:7000 = current FP: Whatever your FP is, that is the value of memory 00:7000.

Set mem @ mem 00:7000: Nothing else is specified.

Clear mem @ mem 00:7000: Nothing else is specified. Clears current memory?

Mem 00:7000 =: Makes the memory equal the specified value. (max 65535)

Mem 00:7000 +=: Makes the memory add the amount specified. (max 65535)

Mem 00:7000 increment: Adds a value of 1 to the memory address.

Mem 00:7000 decrement: Subtracts a value of 1 from the memory address.

Mem 00:7000 = mem (8-bit): Makes the value of the specified address the same as 00:7000, in 8-bit values.

Mem 00:7000 = random # less than: Makes the memory store a random number less than 65535.

Mem 00:7000 += mem: Adds the current value of the specified address to 00:7000.

Mem 00:7000 -= mem: Subtracts the value of the specified address from 00:7000.

Mem 00:7000 = mem (16-bit): Makes the current 16-bit value of the memory specified to 00:7000.

Mem 00:7000 compare to/ compare to address: Not sure.

Mem 00:7000 = current level: Makes 00:7000 equal the current level Mario is on.

Mem 00:7000 = object Z coord: Makes 00:7000 store the current Z height of the specified object.

Mem 00:7000 = Held joypad register: Stores the buttons held to memory 00:7000?

Mem 00:7000 = tapped joypad register: Stores the buttons tapped to memory 00:7000?

If mem 00:7000 bit(s) set, jump to: Jumps to specified rom address if any bits set.

If mem 00:7000 bit(s) clear, jump to: Jumps to specified ROM address if all bits cleared.

If mem 00:7000 =: If memory 00:7000 is equal to value specified, then jump to ROM address specified.

If mem 00:7000 !=: ???

If mem 00:7000 set, no bits: If the specified bit is not set, then jump to ROM address?

If mem 00:7000 set, any bits: Same as above, appearntly, only if it is set, jump to ROM address.

If equal to zero, jump to: If 00:7000 value is equal to zero, jump to ROM address specified.

If not equal to zero, jump to: If 00:7000 value is anything except for zero, jump to ROM address specified.

If greater than/ equal to, jump to: It only specifies ROM address, no value to compare to.

If less than, jump to: Same as above, only less than whatever it's supposed to be.

If negative, jump to: If the value is negative (?) then jump to ROM address specified.

If positive, jump to: If the value is more than 0, then jump to ROM address specified.

Mem 00:7000 = quantity of item: Memory 00:7000 is equal to the number of the item specified.

Mem 00:7000 = coins: makes the value in 00:7000 the number of coins you have.

Mem 00:7000 = frog coins: makes the value in 00:7000 the number of frog coins you have.

Mem 00:7000 = equipment of character: Specify which character, and if it is a weapon, accessory, or armor. The value of 00:7000 will be the item number.

Mem 00:70A7 = quantity of inventory of item @ mem 00:7000: Makes the 8-bit value in 00:70A7 the number of items in inventory slot specified in Mem 00:7000.

Mem 00:7000 = mem 7f: :Makes the value set in Mem 00:7000 to the 7F: address specified.

Mem 00:7000 isolate bits: ?

Mem 00:7000 set bits: Sets the bits in Mem 00:7000.

Mem 00:7000 xor bits: (clear bits?)

Mem 00:7000 isolate bits = mem: ?

Mem 00:7000 set bits = mem: Makes the bits set in Mem 00:7000 to the address specified?

Mem 00:7000 xor bits: (Cleared?)
____________________________________________
PAUSE SCRIPT...

Delay, frames (8-bit): Delay the script by up to 255 frames.

Delay, frames (16-bit) Delay the script by up to 65535 frames.

Pause script, resume on next dlg page(A): Pauses script, lets sync'd dialouge run, then continues script after a the dialouge gets a new page, line, or pause.

Pause script, resume on next dlg page(B): What's the difference...?
______________________________________
RESET GAME...

Reset game, choose game: Resets the game and lets you choose the save file to load to.

Reset game: Resets the game, loads from last save point.
______________________________________
RETURN...

Return: Returns the current script. Other commands can be placed after return, but need to be jumped to to work.

Return all: Returns all commands.
_____________________________________

____________________
Introduction to The Lazy Shell Editor (youtube)
Super Modify RPG's Youtube Channel.

Omega45889
Posted on 02-10-09 06:17 PM Link | Quote | ID: 100635


Red Paratroopa
Level: 31

Posts: 170/178
EXP: 183122
Next: 2241

Since: 01-18-08

Last post: 5485 days
Last view: 4792 days
A great start. If this sees good progress, ill put it in the next version.

Sukasa
Posted on 02-10-09 06:18 PM Link | Quote | ID: 100636


Red Birdo
Level: 92

Posts: 1630/2112
EXP: 7691012
Next: 65925

Since: 02-19-07

Last post: 4450 days
Last view: 3222 days
I've seen the experience += Packet thing, I believe that may be used in certain scripted fights.

marioKid
Posted on 02-09-12 06:54 PM Link | Quote | ID: 149828

Newcomer
Level: 3

Posts: 1/1
EXP: 66
Next: 62

Since: 02-09-12

Last post: 4462 days
Last view: 4455 days
good stuff for noobies like me >=D keep at it ftw~

Main - Super Mario RPG Hacking - Event Script tutorial New thread | New reply

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

Page rendered in 0.021 seconds. (363KB of memory used)
MySQL - queries: 52, rows: 75/76, time: 0.015 seconds.