Welcome Guest [Log In] [Register]
Welcome Message
Yoshi says: Hello, and welcome to Yoshi's Lighthouse! This hacking forum is dedicated to the Mario and Luigi video game series.
The second public version of Yoshi Magic has been released, so enjoy what we have to offer while we continue working on the next version. You can download the current version here.

Members who have a post count of 0 for an extended amount of time will eventually be pruned, so please post atleast once.

Welcome to our administration!
Salanewt, the founder of Yoshi's Lighthouse
Teawater, the main developer of Yoshi's Magic. (And probably should receive like 99% credit for it?)
Xiron, our hopefully, activities director, and treasurer.

All of these people have contributed to theme making of themes that weren't specific theirs.

Teawater says: Hello, welcome to our community, if you get bored, don't forget to stop by the chatbox. Otherwise you can visit our affiliates. If you like Golden Sun, you can also stop by GSHC!
Xiron says: Don't like our chatbox? Then come join our Skype group today! For more information, please speak to me.
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:

Username:   Password:
Add Reply
Script Editing; Start of "Mario's Biggest Fan" & more!
Topic Started: Oct 8 2009, 08:17:48 AM (815 Views)
Posted Image Salanewt
Member Avatar
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:

Posted Image

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:

Posted Image

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.
:Idleblackyoshi: :Idlewhiteyoshi:

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.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

You say there are no ponters to text, I think not!

Posted Image

Next time, look carefully!
If you ever find an error in any of my reference materials, PLEASE let me know.
Online Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
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.
:Idleblackyoshi: :Idlewhiteyoshi:
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.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

Posted Image

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.
Online Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
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.

:Idleblackyoshi: :Idlewhiteyoshi:
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.
Offline Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
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.
:Idleblackyoshi: :Idlewhiteyoshi:

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.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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.
Online Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
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.
:Idleblackyoshi: :Idlewhiteyoshi:
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.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
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 0240000D 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.
:Idleblackyoshi: :Idleredyoshi:
If you ever find an error in any of my reference materials, PLEASE let me know.
Online Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
Star Yoshi

Okay, I followed that one pointer, and found what you were talking about, for the values to enable walking? Well...

Posted Image

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.
:Idleblackyoshi: :Idlewhiteyoshi:

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.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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.
Online Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
Star Yoshi

After doing some research with text editing, I have concluded that text editing is a form of script editing.

Posted Image

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.
:Idleblackyoshi: :Idlewhiteyoshi:
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.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

I haven't recorded argument 18 02? Cool.

ARGUMENT 02 GO TO script.

Example: 02 00 08221096


Posted Image


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:
Posted Image
If you ever find an error in any of my reference materials, PLEASE let me know.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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)
- 8 9 = If And > 0
- 9 = If Xor > 0
- 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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

Now, in to Enemy Scripting....

Posted Image

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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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.

Posted Image

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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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 = Return to save location (and recover old stats), or Credits cutscene.
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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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.
Online Profile Quote Post Goto Top
 
Posted Image Teawater
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.

32 = Contains flags.
 
0001 =
0002 =
0004 =
0008 = Player Character is attacking...
0010 = ?
0020 = ?
0040 = ?
0080 = ?
0100 = ?
0200 = Enemy is attacking...


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.
Online Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · Mario and Luigi: Superstar Saga · Next Topic »
Add Reply

Affiliates