|
| ||||||
|---|---|---|---|---|---|---|
|
| Welcome to Yoshi Lighthouse. We hope you enjoy your visit. You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free. Join our community! If you're already a member please log in to your account to access all of our features: |
| Script Editing; Start of "Mario's Biggest Fan" & more! | |
|---|---|
| Topic Started: Oct 8 2009, 08:17:48 AM (815 Views) | |
Salanewt
|
Oct 8 2009, 08:17:48 AM Post #1 |
![]()
Star Yoshi
![]()
|
Hello everyone. For the past little bit, I have been working on editing scripts. I would like to eventually make my own that I am calling "Mario's Biggest Fan", but for now, I have to work with other scripts. It seems like many similar scripts have been built differently, so I am going to post an image of the scripts that I have been working with, and I will explain to you all what they do (what the scripts themselves do, as well as some of the values). Please note that I am still working on it, so if you can help me, I would appreciate it. Also, both of these scripts are Monty mole scripts. I know when one starts and ends, but I only know when the other one starts. Also, they are both from the same cave. "High Ends Badge" rewarding Monty Mole: ![]() This time, I am explaining what the known numbers do in the picture, but this will only be done until there are too many known numbers. Also, I do have an idea as to what some of these other numbers will do (like most of the ones before the flag and after the item), but I need to work more with them to be sure. This is the script that "Mario's Biggest Fan" will be based on, but notice something? There are no pointers to text... I am still working on how to do this, but it is coming. "1-up Mushroom" rewarding Monty Mole: ![]() Okay, the flag number is different, but it works in the same was as the flag for the other script. Also, I do know how to alter the animation for these scripts and change other minor things (like freezing Mario's sprite), but I am still working with these effects, so I have not listed them. For example, I can move the 1-up Mushroom's X coordinate when Mario is holding it, but I am still working with this neat affect. Have a nice day. ![]() Edit 1: I noticed that the green subtitle in the first picture is not complete. Anyway, FF should be the same as making it give you one of the item (in this case, since it is badges). |
|
Have a nice day! Yoshi is the ultimate video game character ever... If you don't believe me, then try beating me in Super Smash Bros. Brawl. My friend code is 3308-4556-9868. My nickname is Yoshi. To use a sword, /\ and / again. | |
![]() |
|
Teawater
|
Oct 8 2009, 06:26:43 PM Post #2 |
|
Who are you calling an old man?
![]()
|
You say there are no ponters to text, I think not!![]() Next time, look carefully! |
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Salanewt
|
Oct 8 2009, 06:33:05 PM Post #3 |
![]()
Star Yoshi
![]()
|
Oh cool, thank you! I was looking carefully, but it never occured to me that the pointers would be chopped up. Sweet! So this is how scripts read the text. I think it still seems quite confusing, but perhaps it will be solved in the future. Have a nice day.
|
|
Have a nice day! Yoshi is the ultimate video game character ever... If you don't believe me, then try beating me in Super Smash Bros. Brawl. My friend code is 3308-4556-9868. My nickname is Yoshi. To use a sword, /\ and / again. | |
![]() |
|
Teawater
|
Oct 10 2009, 11:49:02 AM Post #4 |
|
Who are you calling an old man?
![]()
|
![]() This is to show how big room scripts can be. |
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Salanewt
|
Oct 10 2009, 03:08:22 PM Post #5 |
![]()
Star Yoshi
![]()
|
Oh cool, thank you for finding these. Anyway, I think we know of at least four types of scripts... Room Scripts, Sprite scripts (both event and movement, two types), Cutscene scripts, Item scripts, Enemy scripts (basically how each enemy functions), Item scripts include regular items, equipment items, key items, etc. I am sure that there are other types, like battle scripts, etc, but I consider them either Sprite Scrips or Cutscene Scripts (based on the scripts during battle and/or how you encounter them). Enemy scripts are what makes them function properly during battle, as well as their abilities (which is why the rest of the Goombas can't use their own attacks, because they might not have their attacks even programmed in the game, and why Paragoomba does not seem compatible with any attack at all). Have a nice day.
|
|
Have a nice day! Yoshi is the ultimate video game character ever... If you don't believe me, then try beating me in Super Smash Bros. Brawl. My friend code is 3308-4556-9868. My nickname is Yoshi. To use a sword, /\ and / again. | |
![]() |
|
Salanewt
|
Oct 18 2009, 02:20:38 PM Post #6 |
![]()
Star Yoshi
![]()
|
GOOD NEWS!!! It is possible to copy and paste scripts from one area of the game into another area, and the script will work (as long as the same amount of bytes are in the ROM, and you did not overwrite anything important). However, copied scripts even seem to share the same flags with their original scripts, so this might slow down "Mario's Biggest Fan" a tiny bit. However, I am going to test something soon... It also turns out that the script in the first image actually starts at 082432AF, not 082432AC. It is because of this that when I first copied the script, it did not work. Have a nice day. ![]() Edit: It also seems like the copied script is still not perfect, since the game doesn't continue once certain points in scripts are met. For example, I have copied the first Monty Mole script, and the copy is exactly the same. However, once I see the "you have recieved a badge" sprite, nothing else happens. I am guessing that there might be a pointer that fixes scripts, but I have some doubts about this theory. There is also a chance that there might be numbers that should be copied for the script to finish successfully. By the way, scripts that are purely text and do not have flags do not have this problem (I think). |
|
Have a nice day! Yoshi is the ultimate video game character ever... If you don't believe me, then try beating me in Super Smash Bros. Brawl. My friend code is 3308-4556-9868. My nickname is Yoshi. To use a sword, /\ and / again. | |
![]() |
|
Teawater
|
Oct 19 2009, 03:21:31 AM Post #7 |
|
Who are you calling an old man?
![]()
|
This might sound quite dumb. but I noticed there is a pointer that points to the begining of the room script... I tracked back as far as a list of pointers that seem to affect rooms... Approx.. 083D7940 (Lobby Room) and.... that's as far back as I could go. This is not teleporting though... atleast not yet. THESE pointers are how rooms locate WHERE their scripts are. |
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
Feb 10 2010, 07:58:30 PM Post #8 |
|
Who are you calling an old man?
![]()
|
0821F850 = Start of disabing battles from when you run into the Goomba.. (not sure about other enemies.) Apparently thereare separate scripts for both collision with either Mario and Luigi. (I think.) |
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Salanewt
|
Feb 10 2010, 09:05:43 PM Post #9 |
![]()
Star Yoshi
![]()
|
That would make sense, in case either Mario or Luigi attacks... It has to show them initiating the battle. Have a nice day.
|
|
Have a nice day! Yoshi is the ultimate video game character ever... If you don't believe me, then try beating me in Super Smash Bros. Brawl. My friend code is 3308-4556-9868. My nickname is Yoshi. To use a sword, /\ and / again. | |
![]() |
|
Teawater
|
Feb 11 2010, 05:38:08 PM Post #10 |
|
Who are you calling an old man?
![]()
|
Today, I decided to call this day Script Day, meaning, the major part of the day will do with Scripts (minor parts are everything else.) And to celebrate this day, I'm going to start a LIST, these list will include locations to each script, ... well, atleast the beginning part. (Toad Square/Koopa Cruiser.) Room Scripts Coming Soon to an edit near you. Format: offset - pointer - scripts - room 083D78A0 - 082FBE80 - 082201E8 - Toad Square 083D78A4 - 082FBE92 - 08221478 - Corridor (to Cruiser) 083D78A8 083D78AC 083D78B0 083D78B4 083D78B8 083D78BC 083D78C0 083D78C4 083D78C8 083D78CC 083D78D0 083D78D4 083D78D8 083D78DC 083D78E0 083D78E4 083D78E8 083D78EC 083D78F0 083D78F4 083D78F8 083D78FC 083D7900 083D7904 083D7908 083D790C 083D7910 083D7914 083D7918 083D791C 083D7920 083D7924 083D7928 083D792C 083D7930 083D7934 083D7938 083D793C - 082FBEA4 - 08223468 - Camera Room 083D7940 - 082FBEAB - 082230FC - Lobby Room 083D7944 083D7948 083D794C 083D7950 083D7954 083D7958 083D795C 083D7960 083D7964 083D7968 083D796C 083D7970 083D7974 083D7978 083D797C 083D7980 083D7984 083D7988 083D798C - 082FBEBB - 08221A82 - Cruiser Airport 08220FE0-082210B0 - Toad Dead End Script (you cannot go south of Toad Square) 082210A5 - This offset has a pointer to Mario's movement data caused by the script. Following the pointer to 08225FD6. 0200000D 01000002 02 - length to walk 00 - direction to walk in 000D - It's like this "defines" walking? Changing it, ofcourse, won't move Mario. 01 - 00 - 00 - 02 - length to walk; might be connected to the previous 02 (look in 8-bit) Have a nice day.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Salanewt
|
Feb 12 2010, 12:09:38 AM Post #11 |
![]()
Star Yoshi
![]()
|
Okay, I followed that one pointer, and found what you were talking about, for the values to enable walking? Well...![]() You see where that "60" is? After editing that value from 00, I did some testing. When trying to walk south, I can change which direction Mario is redirected to go. 00 = North 20 = Northeast 40 = East 60 = Southeast 80 = South A0 = Southwest C0 = West E0 = Northwest Also, these values are the opposite of the above. 10 = South 30 = Southwest 50 = West 70 = Northwest 90 = North B0 = Northeast D0 = East F0 = Southeast Also, when I change the third 32-bit segment, the graphics on the map temporarily mess up. If I change the last "00" into "AA", Mario is slowed down greatly, so I have a feeling that we can affect the speed at which Mario can walk afterwards. "0F" speeds Mario up. Have a nice day. ![]() Edit: Changed one or two things. |
|
Have a nice day! Yoshi is the ultimate video game character ever... If you don't believe me, then try beating me in Super Smash Bros. Brawl. My friend code is 3308-4556-9868. My nickname is Yoshi. To use a sword, /\ and / again. | |
![]() |
|
Teawater
|
Mar 14 2010, 02:35:31 PM Post #12 |
|
Who are you calling an old man?
![]()
|
Scripts appear to have arguments... soo.... 17 = Conversation? Example: 17 08 17 80 00 C1 24 084E8E60 Byte 1 - Byte 2 - Byte 3 - Byte 4 - Byte 5 - 03 (01,02)= Convo type (Sprite part) (00 = None; 01 = Talking; 02 = Thought; 03 = Talking (Same as 01)) 80 = Some effect on Height of box. (00 is smaller than 80) Byte 6 - 1C (04,08,10) = Sound effect for voice. (00 = None; 40 = Normal; 80 = Soft voice.. etc.) 60 (20,40) = Convo-box type (00 = None; 20 = Speech bubble; 40 = Shout bubble; 60 = Blue box) Byte 7 - 10 - Pointer to a pointer that points to text 36 = Write Flag The bytes that should come after it... Byte 1 - Area to write flag too in flag bank. Byte 2 - The exact binary offset to write flag. Byte 3 - Byte 4 - Some of these bytes will most likely be 0 if Byte 1 is greater than 0. Byte 5 - Byte 6 - Byte 7 - Byte 8 - Byte 9 - ..... 3F = Read Flag Byte 1 - Usually 10, not sure what this is. Byte 2 - Byte 3 - Some of these may be 0. Byte 4 - Byte 5 - Binary offset to read. Byte 6 - Byte 7 - Byte 8 - Byte 9 - ..... 7C = Movement Controls (+Switchingbetween Mario/Luigi) And the one 16-bit attribute. HEX = Disables.... 0001 = Right 0002 = Left 0004 = Up 0008 = Down 0010 = R 0020 = L 0040 = 0080 = 0100 = 0200 = 0400 = 0800 = 1000 = A (Cannot Jump, or speak to anyone.. but can go through cutscenes...) 2000 = 4000 = 8000 = Switching characters from Mario to Luigi. Not sure about the other way around. Notes to self: Move Mario's location on first visit to Toadtown: 082202C8 (X should be like at 082202CB.... and Y - 082202CD.) Edited by Teawater, Jun 7 2011, 08:25:44 PM.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
Mar 22 2010, 09:46:26 PM Post #13 |
|
Who are you calling an old man?
![]()
|
More updates on scripting!! ARGUMENT 23 = Change Background music Example: 23 00 00 00 (No Music) ARGUMENT 24 = Change Background music as well. Example: 24 00 01 ARGUMENT 25 = Play Sound effect Example: 25 9C 01 ARGUMENT 26 = Sound effects Volume? ARGUMENT 2C = Room effect used when switching bttween rooms/etc. ARGUMENT 70 = Switching Camera View to Other Characters ARGUMENT 01 = End Script ARGUMENT 98 = Warp to Battle (Needs more testing; could only reach debug battles.) Example: 98 ?? ?? ?? ... (01) ARGUMENT 99 = Warp to a mini-game 00 = 04 =The Star 'Stache Smash 08 = 0C = 10 = Winkle Coloseum ARGUMENT 9A = Open the Suitcase (Character scripts, or no character scripts inside the suitcase.) |
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
Apr 1 2010, 12:10:14 AM Post #14 |
|
Who are you calling an old man?
![]()
|
More INFO!! Argument 87 = Scripted Warps. Example: 87 00 0A 10 80 20 6C 00 FA 08250E07 00 - This is usually 00, changing it could give you debug rooms. 0A - What room to teleport to? 10 - Also part of what room to teleport to... 4 different rooms... 80 - X block 20 - X of block 6C - Y 00 - F* makes camera move down.... FA - The music. 08250E07 - Script pointer for the room to teleport to, can be used for entry cutscenes? |
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Salanewt
|
Apr 10 2010, 12:04:00 PM Post #15 |
![]()
Star Yoshi
![]()
|
After doing some research with text editing, I have concluded that text editing is a form of script editing.![]() Of course, this is text editing. Notice the different blue icon in the lower right hand corner? This arrow means that Toad is not done talking yet (unlike the small blue circle, which means that the end of that segment of text has been reached). I think there are also options for Yes/No textboxes as well, but text editing is a simple form of script editing (so pretty much, only edits the scripts involved with text, as well as reading the text). An actual script is still needed to read this, but... Have a nice day.
|
|
Have a nice day! Yoshi is the ultimate video game character ever... If you don't believe me, then try beating me in Super Smash Bros. Brawl. My friend code is 3308-4556-9868. My nickname is Yoshi. To use a sword, /\ and / again. | |
![]() |
|
Teawater
|
Apr 10 2010, 10:27:35 PM Post #16 |
|
Who are you calling an old man?
![]()
|
I haven't recorded argument ARGUMENT 02 GO TO script. Example: 02 00 08221096 ![]() Argumnt 03 appears to have something to do with the Actons Module? Argument 22 could have something to do with the timing of the (!) with the convo box.. (For example: Getting both at the same time.) Unfinished Color Coding of the Pink Toad:
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
Apr 13 2010, 10:51:40 PM Post #17 |
|
Who are you calling an old man?
![]()
|
More nice data coming your way!!!!! Command 27 = Timer Arg 1: Set minute. Arg 2: Set second. Arg 3: Set millisecond. (of 60.) Increment/Decrement is reset back to 0, and timer is "resumed." Command 28 = Timer Arg1: (0 = INCREMENT; 1 = DECREMENT) Command 29 = Timer Arg 1: X Arg 2: Y Command 2A = Timer Arg 1: (0 = DISABLE; 1 = ENABLE; 2 = RESUME; 3 = PAUSE) Command 2B = Time Arg 1 = Storybook flags to write to. Arg 2 = What to write. (0 = Minute; 1 = Second; 2 = Millisecond (of 100); 3 = Millisecond (of 60)) ARGUMENT 31 = Current HP/BP Arg 1: (0 = Mario; 1 = Luigi; 2 = Both) Arg 2: (0 = Current HP; 1 = Current BP) Arg 3: (0 = Add; 1 = Subtract) Arg 4: Value to Add/Subtact ARGUMENT 32 = Bros Attacks Arg 1: Must be 0, else this command serves no purpose. Arg 2: 0 = Add Bros. Attack; 1 = Remove Bros. Attack. Arg 3: 0-8 = Mario; 9-11h+ = Luigi; Bros Attack to Add. Read Stat Command = Read Current/Max HP/BP, store into Storybook Flags ARGUMENT 33 Arg 1: Storybook flags Index Arg 2: Character (0 = Mario; 1=Luigi) Arg 3: Stat (0 = Current HP; 1 = Max HP; 2 = Current BP; 3 = Max BP Item Rewarding. ARGUMENT 34. (Example at location: 0821E46E, this is for the blue toad in the corner in Toadtown Square.) Example: 34 2F FF 80 32 00 .... (Not sure whre it ends yet.) When picking items look at the 2F and 32. Edit: Arg 1: Write to Storybook Flags (1FFF does nothing.) (Write 1-bit flag, I think.) Arg 2: What to edit 1 (0=Items/Equipment; 1=Coins; 2=Key Items) Arg 3: What to edit 2 (Ignored for Coins.) Arg 4: Add/Subtract (0 = Add; 1 = Subtract; 2+ = ? Constant Value?) Arg 5: Amount to add/subtract Command 35 = Get Number of Items.. Put in Storybook Flags. Arg 1: Storybook Flags index Arg 2: Item (FF=Coins) Command 36 = Write Flag Arg 1: Write to Storybook Flags index Arg 2: Operation. - 0 = Arg 3 - 1 = Arg 3 + Arg 4; - 2 = Arg 3 - Arg 4 - 3 = Arg 3 * Arg 4 - 4 = Arg 3 / Arg 4 ? (080EAC04); - 5 = ? - 6 = Arg 3 << Arg 4 - 7 = Arg 3 >> Arg 4 (arithmetic) - 8 = Arg 3 And Arg 4 - 9 = Arg 3 Or Arg 4 - A = Arg 3 Xor Arg 4 - B = If Arg 3 = 0 return 1; else 0. - C = mvn Arg 3 (Move Not) Arg 3: Value/variable (1) Arg 4: Value/variable (2) Command 37 = Keypad Press Arg 1: (0 = Press for a second; 1 = Press and hold; 2 = Let go) Arg 2: Keypad buttons to press. Command 38 = Scramble directions. Arg 1 = Angle change (0 = Normal; 1 = 90 clockwise; 2 = 180 clockwise; 3 = 270 clockwise.) Command 39 = Read Keypad Arg 1 = Storybook Flags Index (Write value of buttons pressed) Arg 2 = (0 = Check for on press (0x2A); 1 = Check for holding (0x28)) Command 3A = Read Keypad (Holding a key = Bit on/off/on/off... (0x2E)) Arg 1 = Storybook Flags Index (Write value of buttons pressed) Command 3B = Keypad Check (More research later.) Arg 1 = (0x28, 0x2A) Arg 2 = Arg 3 = Arg 4 = Command 3C = Keypad Check (Similar to above, except 0x2E) Arg 1 = Arg 2 = Arg 3 = Arg 4 = Command 3D = Disabled Sound Effect Arg 1 = Keys that will make the sound. Command 3E = Does nothing. Command 3F = Read Storybook Flag Arg 1 = Operation (080EA7B4) NOTE: Operations must be checked again; some may be wrong.) - 0 = If Arg 2 = Arg 3 - 1 = If Xor (Not Equal) - 2 = If < - 3 = If > - 4 = If <= - 5 = If >= - 6 = If Or > 0 - 7 = If Or > 0 (Same as 6) - - - A = If Arg 2 = 0 - B = If - C = If Arg 2 = Value/variable Arg 3 = Value/variable Arg 4 = Return true/false to execute jump Arg 5 = If true jump to this address. Command 40 = Does nothing. Command 41 = Random Number Generator related. Write to storybook flags. Arg 1 = Storybook Flags index. Arg 2 = A number representing 100%. All random generated numbers should be less than this value. (20h-bits) Command 42 = Random Jump Arg 1 = A number representing the number of choices available. (2-bits) Arg 2 = Pointer Arg 3 = Pointer Arg 4 = Pointer Command 43 = Push a value in script's stack. (Increments index) Arg 1 = The value to push Command 44 = Clear a value in script's stack. (Decrements index) Command 45 = Compare with last stacked value to determine a Jump. Useful for loops. Arg 1 = (Of E7) 01 = Add 1 to last stacked value (after compare) 02 = Subtract 1 to last stacked value (after compare) 03 = Add 1 to last stacked value (before compare) 04 = Subtract 1 to last stacked value (before compare) (Of 18) 10 = Decrement script's stack index on jump. 18 = If jump failed, then clear last stack value, decrement stack index. Arg 2 = If then operation. Arg 3 = Number to compare with the stacked value. Arg 4 = Pointer to jump to if operation is true. Command 46 = Store arg at +98h. Arg 1 = Number to store Command 47 = Compare with +98h, and jump. Arg 1 = Operation Arg 2 = Compared number Arg 3 = Pointer to jump to if operation is true. Command 48 = Stuff on 0300034C + 888; flag x01 OR'd; research later. ; + (Something to do with the secondary palette via 03000BD4) Command 49 = (Something to do with the secondary palette via 03000BD4) Arg 1 = Must be 0, else nothing special happens. Arg 2, 3, 4 = Stuff on 0300034C + 888; research later. Command 4A = Get Language (If Arg 2 is 0) (Language byte at 03000C0C.) Arg 1 = Storybook flag to store in value. Arg 2 = Must be 0 to get language, otherwise an "un-needed" address will be written instead. Command 4B = Action taken and jump. Arg 1 = Action taken Arg 2 = Jump if true Command 4C Command 4D = Does nothing. Command 4E Command 4F = Does nothing. Command 77 = Set Suitcase Portrait Arg 1 = Mario/Luigi Arg 2 = Room's index sprite? (?) Arg 3 Arg 4 ...? Battle Commands: 71 = Use an ability. Target Ability Flags (01 = Asynchronious ; 02 = Unknown ; 04 = Override any currently running abilities. ; 08 = Unused?) Attack Arg 1 Attack Arg 2 Attack Arg 3 Pick up downed partner. Edited by Teawater, Nov 16 2012, 12:58:20 AM.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
Apr 15 2010, 04:22:55 PM Post #18 |
|
Who are you calling an old man?
![]()
|
This post shal contain ALL the FF Arguments for TEXT SCRIPTING. 00 = Line Break 01 = New Convo-Box ; 00 02 = Not used? 03 = Speed up convo. (Show all text immediately.) Similar to pressing A as someone talks. 04 = Item selections. Often used with FF 03 and FF 6E (Ex: FF 03 FF 04 FF 6E) 05 = Script Call? (Ex:For Special Button Presses, putting number in 0F command if used multiple times, etc.) The Script Call is probably assigned ahead of time. 06 = 07 = 08 = 09 = 0A = Ends/removes the convobox/cleanup. 0B = valign ; 00 = top, 01 = middle, 02 = bottom. 0C = Delay ; 00-FF Length of time to delay. Can be applied in the middle of a convo. 0D = Color (00 = Character in back; 01 = Character in front; Mario = Red, Luigi = Green.) 0E = Item Names (plural only) 03000C80 - 0F = A number... Max: 999999 10 = Number (Same as 0F, but you can have a bit of a space before you place the number.) 11 = Bottom-right corner of convo-box animation. ; 00 = More convos animation, 01 = Last convo animation. 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 = Black Color 21 = Text Color 22 = Text Color 23 = Light Blue Text Color 24 = White Text Color 25 = Text Color 26 = Text Color 27 = Purple Text Color 28 = Text Color 29 = Green Text Color 2A = Text Color 2B = Blue Text Color 2C = Text Color 2D = Red Text Color 2E = Red Text Color 2F = Text Color 30 31 = Tall Text Effect 32 = Wide Text Effect 33 = Large Text 34 35 = Center? 36 37 38 = Spaced letters 39 3A 3B 3C 3D 3E 3F 40 = Glow Text Effect 41 = Glow Text Effect 42 43 = Shrunk Text Effect 44 = Shrunk Text Effect 45 = Glow Text Effect 46 = (reset) 47 = (reset) 48 = (reset) 49 = (reset) 4A = (reset) 4B = (reset) 4C = (reset) 4D = (reset) 4E = (reset) 4F = (reset) 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60-7F = Indent Right (+ 1-32) 80-9F = Indent Left (+ 1-32) A0-BF = Drop Text (+ 1-32) C0-DF = Raise Text (+ 1-32) People with editing priviledges may edit this post if they have more information, otherwise, you'll have to create a post yourself. Edited by Teawater, Aug 24 2011, 02:55:06 PM.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
May 3 2010, 06:59:06 PM Post #19 |
|
Who are you calling an old man?
![]()
|
Now, in to Enemy Scripting....![]() I think I'll take a break from this enemy and work on Fawful? Edited by Teawater, May 3 2010, 06:59:33 PM.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
May 26 2010, 11:08:05 PM Post #20 |
|
Who are you calling an old man?
![]()
|
More Room Info... posting this herebecause I'm going to break down one of the scripts. (Cracked Wall.) In which case this post will be edited.![]() 93 = Shake Screen Edited by Teawater, May 27 2010, 06:37:00 PM.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
Jul 5 2011, 09:07:34 PM Post #21 |
|
Who are you calling an old man?
![]()
|
080EBAE8 = Breakpoint here to find out what these do. This is where the jump to specific commands take place. 080F2CD8 = For battles. 080F9736 = For suitcase cutscenes. 08199898 = Text scripting... (No pointer database.) What you need to know: 02004ACC = This is the Scripting RAM stuff.. Holding the current command, and offsets in scripting.. +0 = Pointer +4 = Pointer gets placed here at the end of script. +10 = The Caller Location Pointer +14 = Pointer... .... 03007C70 = These are the args of the command. Posting my list. There may be some errors in it. 00 = End - Does not go back to caller script. 01 (0) = Return - Returns to caller script, if there is not one, this is used as an End Script. 02 (5) = Jump - If (20) flag, save caller location. (For returns.) (Is 20, 2-bit and used like a boolean? ) 03 = Timing/delay (frames) - Sets timer, and initiates count down. 04 = Script Call (With arg. for character?) (Large function; more research later) 05 = Pause NPC Script - Set/unset a bit (04) in NPC data that will make NPCs not move around. (2 args: On/Off bit, and NPC Number.) 06 = NPC-related: Unsure, but the code says it repeats itself if a bit, 01, and a certain byte matches a number. ; Arg1: 0 for all objects, 1 for one object; Arg2: The object number of the one object. 07 = ? (NPC related) 08 = ? (Set/unset 0001 flag at 02004F7E Arg is the flag) 09 = ? (Large function) 0A = ? (Large function) 0B = ? (Medium function) 0C = ? (Medium function) 0D = Move object (walk) 0E = ? (Small function) 0F = NPC related (Args: NPC Number, ...?) (Medium function) 10 = ? (Medium function) 11 = ? (Medium function) 12 = ? (Medium function) 13 = Sprite change (Sub-image/no animations?) Used for holding Item Rewards 14 = Sprite change (Sub-image/no animations?) 15 = 16 = Conversation 17 = Conversation 18 = Wait for response? (A button with convos) (Pause during convos. flag 1 of ??) 19 = (Medium function: 080EB09C) 20 = 21 = Animation Bubble. ( Like (!) ) 22 = Wait until animation bubble or sound effect finishes? (Experimenting needed) 23 = Music 24 = Music?/Sound effects 25 = Sound Effects 26 = SFX volume 2C = Warp graphics (Room Transition) 2D = Undim (Black=>Lights On) (?) 3E = Swap Room Palettes (w/ timing) 34 = Item Reward 35 = ? 36 (11) = Write Flag 3B = Button check? (Like the SELECT at 0822365E) 3F (14) = Read Flag 4B = Action taken. (Hammer, Fire, Thunder, etc.) (attr. and pointer) 52 = 65 = Sprite Subimage/ direction facing 70 = Position Camera on an NPC 7C = Disable buttons 87 = Warp 88 = 89 = 8A = 8B = 8C = 8D = 8E = 8F = Map Tile Scripts (Tile mods) 90 = Animated tiles 91 = Room props x8 related 92 = ? Palette related? 93 = Shake screen 94 = 95 = 96 = 97 = 98 = Battle 99 = Mini-game 9A = Suitcase (Cutscenes) (00 = Suitcase ; 40 = Save Menu) 9B = Shop 9C = World Map (With destinations) 9D = Load file menu (Or Return to Save location + recover saved stats?) - Or Credits cutscene (Experimenting needed) 9E = 9F = Item/Equipment/Branching-related Check if you have Items, Gear, or Badges, I think. (Arg 1: If you have items(0), if you don't.(1); Arg 2: Branch to pointer.) A0 = Small unknown function. (Set a bit.) A1 = BC = ? Edited by Teawater, Nov 16 2012, 05:29:22 PM.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
Jul 16 2012, 12:38:46 PM Post #22 |
|
Who are you calling an old man?
![]()
|
This post shall be used to list the ordering of all the scripts which were used. Field Scripts: 0821DC66 = 0821DFA2 = 0821F808 = Blank Script ; Used when NPCs don't need a script. 0821F809 = Unknown. 08228DB1 = Giant Koopa 08228E15 = Ghost Switch 08228EBF = Lightning Sphere 08228F5D = Cracked Wall 08228FA1 = Sign 08228FB5 = ? --- Enemy Idle Scripts: 08281911 0828191D 08281929 08281935 082826D1 082826DD 082826E9 0828273D 08282755 08282779 --- Battle Scripts: 08282798 = 02 Getme!; 04 Mossy Goomba; 05 Pop Goomba; 06 Paragoomba; 09 Nice Guy; 0A Sledge; 1C Troopea; 58 Fawful; 5E Dragohoho; 6F Wiggler; BB/BC Right/Left Arm 08282CEE = Battle Script 08282DAE = Enemy Script (01 Goomba) 08282DEC = Enemy Script (0D Fighter Fly; 0E Bill Blaster; 17 Lakipea; 1F Super Fly; 33 Blooper) 08282E08 = Enemy Script (OF Beanie; 51 Sniper Bill) 08282E82 = 10 Dry Bones; 16 Sharpea 0828313E = 15 Sworm 08283167 = 1E Spiny 0828345E = Battle script for Bowser 08283714 = 55 Bowser 08283CAB = Fawful Battle Script 08283D71 = 56 Fawful 08284203 = 57 Fawful 082843E1 = Battle Script for Fighter Fly/Sgt. Starshade 0828508B = 07 Fighter Fly 082850B6 = 08 Sgt. Starshade 082850F2 = Hoohooros Battle Script 0828520F = 5A Hoohooros 08285347 = 5B Pillar 08285391 = 5C Pillar 082858B8 = Battle Script for Hoho Stone/Dragohoho 08285957 = 5D Dragohoho 08285EE8 = 5F Hoho Stone 08285FA7 = 60 Hoho Stone 082860E2 = Battle script for Nice Guy. 08286143 = Goomba Battle Script 082864E5 = 0C Goomba Enemy Script 08286692 = 00 Goomba 08286758 = Tolstar Battle Script 082867B9 = 59 Tolstar 08286AD2 = Sledge and Mallet battle script. 08286F5F = 0B Mallet 08287A83 = 20 Pestnut 08287BC2 = 21 Gold Beanie 08287D10 = Wiggler battle script. 08287FFF = 70 Wiggler 0828816E = 71/72/73/74 Wiggler 082882F0 = Getme! Battle Script 08289651 = Battle script for 00 Goomba. (Last battle in list.) 0828984C = Battle Script: Usually with Troopeas... (10+ battles use this, more research needed.) 08289962 = Chuckolator battle script. 08289DD5 = Battle script for one battle: Time Bob-omb. 08289DDB = Battle Script used with Rex enemy. (More research needed.) 08289DCF = Battle script: Clumph 08289DE1 = Battle script for one battle: Bob-ombs 08289DED = Cackletta battle script. 08289E77 = Goomdiver battle script. 08289E83 = Mom Piranha battle script. 08289F6E = Popple and Birdo (w/ 4 eggs) battle script. 0828A041 = Battle script for Hermie III. 0828A232 = Battle script for Oho Jee. 0828A273 = Truckle battle script. 0828A34C = Battle script for Jojora battles. 0828A3AF = Fawful battle script. 0828A460 = Popple and Rookie battle script. (2) 0828A4B7 = Battle script for Bowletta w/ Flarets. 0828A5B4 = Battle script for Bowletta's final battle. 0828A769 = Battle script for Heart. (Final battle.) 0828AA2F = Battle script for Heart. (Final battle.) 0828AADF = Lemmy battle script. 0828AB20 = Battle script for Wendy w/ Time Bob-omb. 0828AB67 = Chomp Bro battle script. 0828AB8F = Popple and Rookie battle script. ;(Iggy and Morton battles use this as well.) Popple battle again... 0828ABC7 = Battle script for Larry w/ Time Bob-omb. 0828AC68 = Queen Bean battle script. 0828ACF6 = Ludwig battle script. 0828AD3B = Battle script for Roy w/ Time Bob-omb. 0828ADAC = 40 Cheep Cheep; 41 Puffer-Cheep 0828AEF9 = 35/36 Piranha Plant 0828B111 = 3F Malibut 0828B287 = 39 Anuboo 0828B3CF = 38 Spiky Snifit 0828B475 = 44 ???? 0828B551 = 45 ???? 0828BB74 = 27/28/29 Blue/Red/Yellow Virus 0828B98F = 25/26 Mecha-Chomp 0828C0B1 = 3A/3B Oucher Glass 0828C184 = 14 Parabeanie 0828C27A = 49 Ice Snifit 0828C6AD = 3E Mecha-Blooper 0828C7FC = 1B Troopea; 47 Elite Troopea 0828CBBF = 23/3D Chuck Guy 0828CE0B = 4A Clumph 0828D060 = A1-A9 Time Bob-omb 0828D2A5 = 11/12/13 Rex 0828D3A1 = 19 Bob-omb 0828D50E = 7C/7D Cackletta 0828DA2B = 7E Cackletta 0828DB0E = 22 Fuzzbush 0828DB4C = 4B Glurp 0828DD92 = 75/77/79/7B Chuckolator 0828E9A7 = 76/78/7A Chuckolator 0828EC8B = 4F Gunner Guy 0828ECD8 = 31/32 Goomdiver 0828EE95 = 34 Pestnut 0828F026 = 6D Rookie 0828F4A6 = 6E Popple 0828F6F7 = 7F Rookie 0828FB66 = 80 Popple 0828FD08 = 24 Laser Snifit 0828FE3C = 81/82 Mom Piranha 0829040D = 1D Paratroopea; 4C Scaratroopea 08290668 = 96/97 Birdo 08290D49 = 98 Egg 08290F7D = 99 Popple 08291422 = 95 Popple 08291796 = 86/8B Hermie III 082925DD = 89/8A Left Claw 0829274A = 87/88 Right Claw 0829282F = 2D/2E Oho Jee 08292CB1 = 2F/30 Oho Jee 08292EC0 = 18 Tanoomba 08292F54 = 2A/2B Eeker 0829306A = 8C Jojora 08293238 = 8D-94 Chucklissa/Oholina/Hoohoolia/Teeheena 08293667 = AA/AB Fawful 08293BF2 = AC/AD Fawful 08293E7A = 42 Starkiss 08293EC3 = 50 Magikoopa 082940C7 = 54 Hammer Bro 082941A6 = 43 Boomerang Bro 0829420E = 61/64/67/6A Queen Bean 08294911 = 62/65/68/6B Right Arm 08294972 = 63/66/69/6C Left Arm 082949D3 = 83 Trunkle 0829515B = 85/B7 Trunkle 0829548B = 84 Trunkle 082954E0 = 37/46 Gritty Goomba 0829558F = 4D Dry Bones 0829567F = 3C/4E Limbo Bro 082956E8 = AE/AF Bowletta 0829634D = B0 Flaret 08296502 = 9A Iggy 082966C1 = 9B Morton 08296828 = 9C Lemmy 08296A49 = B5 Lemmy 08296DCC = 9D Ludwig 08297144 = 9E Roy 08297429 = 9F Wendy 0829762F = B6 Wendy 0829778D = A0 Larry 08297940 = 53 Boo 08297BEF = 2C Yo Bro 08297F74 = 52/B8 Chomp Bro 082980F1 = B2/BA Heart 082983AA = B1/B9 Cackletta 08298D03 = B3/B4 Right Arm/Left Arm 08298D9C = 48 Piranha Bean Suitcase Scripts: More will be listed very soon. Edited by Teawater, Jul 17 2012, 05:29:23 AM.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
Teawater
|
Aug 3 2012, 05:28:54 PM Post #23 |
|
Who are you calling an old man?
![]()
|
Notes on Mem-indexing: x0000-x000F = Object Mem (32-bit) x0010-x0034 = Field/Battle Mem (32-bit) (x0-x24); Note: There are special values in this section that are used in many ways, like which object is active, etc. x0035-x003C = Global Mem (32-bit) (x0-x7) x003D-x1B9C = Global Mem (1-bit) (x0-x1B5F) x1B9D-x1BBC = Field/Battle Mem (1-bit) (x1B60-x1B7F; x0-x1F) x1BBD-x1BCC = ? (1-bit) (x1B80-x1B8F; x0-x1F) Note: It is possible that this can be Field/Battle Mem Extended. (If an arg for function is 0.) x1BCD-x1CF4 = (8-bit) (x1B90-x1CB7; x0-x127) x1CF5-x1D14 = (8-bit) (x1CB8-x1CD7; x0-x1F) x1D15-x1D54 = (16-bit) (x1CD8-x1D17; x0-x3F) ----- 2F = Object number. (Not assigned with map scripts.) Battle: ?? = Number of enemies remaining.
More will be listed soon. Edited by Teawater, Aug 20 2012, 08:05:57 AM.
|
| If you ever find an error in any of my reference materials, PLEASE let me know. | |
![]() |
|
| 1 user reading this topic (1 Guest and 0 Anonymous) | |
| « Previous Topic · Mario and Luigi: Superstar Saga · Next Topic » |






















5:47 PM May 24
