Register - Login
Views: 87405073
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
11-21-17 11:40:58 PM

Jul - SM64 Hacking - Mario 64 Level Importer New poll - New thread - New reply
Pages: 1 2 3 4 5 6 7 8 9 10 ... 46 47 48 49 50 51 52 53 54 55Next newer thread | Next older thread
messiaen
Catgirl
Level: 64


Posts: 1073/1085
EXP: 2160495
For next: 53602

Since: 11-20-07


Since last post: 3.0 years
Last activity: 2.0 years

Posted on 02-25-12 09:07:30 PM Link | Quote
I'm adding functions based on the behavior descriptions, it will be up to the users to see how they interact. You can add any 0x0C command as many times as you want.
Dudaw
Member
Level: 16


Posts: 40/49
EXP: 17187
For next: 3069

Since: 01-06-11


Since last post: 4.0 years
Last activity: 1.0 years

Posted on 02-26-12 10:42:30 PM (last edited by Dudaw at 02-27-12 01:45 AM) Link | Quote
Howdy.
I completed the list and there are about 589 total functions called in the behavior scripts.
Around half are loop functions, while the others are functions coming before the 0x08 mark.
There are quite a bit here, so coming up with descriptions for all of them will probably take some time.
I'll start with descriptions on the loop functions, specifically the solid objects.

By the way, here's a useful one I found a while back:
0x802A4120

This appears to force an object to display at any distance from Mario.
Although there are better alternatives, this could be used for some non-solid objects or whatever it may be.

I never updated the behavior list again, did I?
Well, the updated one should come in handy when looking at the function list.

Edit: Anyone know what the purpose of 0x802BCF40 is?
Rydia
270
good riddance!
Level: 33


Posts: 99/278
EXP: 212610
For next: 16569

Since: 02-18-12
From: Mist

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 02-26-12 11:51:22 PM Link | Quote
So I finally understand what to do in blender to make Levels...its just the importing to test that's troubling me...What do I do to set up my ROM? is said to check obj_import.txt and all that is, is a list of codes...

Help me here...I wanna see if it worked to my liking's....
K3fka
User
Level: 8


Posts: 8/11
EXP: 1672
For next: 515

Since: 02-19-12
From: Florida

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 02-27-12 06:05:46 AM Link | Quote
Go to the download page a scroll down until you find the guide.
messiaen
Catgirl
Level: 64


Posts: 1074/1085
EXP: 2160495
For next: 53602

Since: 11-20-07


Since last post: 3.0 years
Last activity: 2.0 years

Posted on 02-27-12 07:01:07 AM Link | Quote
Originally posted by Dudaw
Howdy.
I completed the list and there are about 589 total functions called in the behavior scripts.
Around half are loop functions, while the others are functions coming before the 0x08 mark.
There are quite a bit here, so coming up with descriptions for all of them will probably take some time.
I'll start with descriptions on the loop functions, specifically the solid objects.



I'm calling the functions before the "loop" area initialization functions, since what they do is just initialize variables, usually processing Param IDs. Descriptions of them aren't needed, just some notes on which "loop" functions they refer to. I'm guessing in most cases they can simply be ignored, at least for the simpler behaviors.

You can make an object visible all the time by setting drawing distance in the geometry layout or behavior, it seems 0x802A4120 does a bit more than it looking quickly at its disassembly, but any description is better than nothing, so thanks on that.

I'll implement some flexible text format function file so users can add new function descriptions and share them without me having to update the importer.
Warwiio
User
Level: 11


Posts: 2/23
EXP: 5117
For next: 868

Since: 12-31-11


Since last post: 4.0 years
Last activity: 4.0 years

Posted on 02-27-12 09:53:42 AM Link | Quote
Messian, is it possible that you can add sound editing to your behavior editor so we can possibly import new sounds (or instruments)? I would be excited to see something like that in the editor.
Mariohacker14
Random nobody
Level: 7


Posts: 5/7
EXP: 915
For next: 533

Since: 03-16-11
From: Chile

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 02-27-12 10:26:36 AM (last edited by Mariohacker14 at 02-27-12 11:58 AM) Link | Quote
Originally posted by Warwiio
Messia[e]n, is it possible that you can add sound editing to your behavior editor so we can possibly import new sounds (or instruments)? I would be excited to see something like that in the editor.


Just use the Subdrag's N64 Sound Bank Ripper to do this.
Anyway, I'm testing some B-Params and I discover 2 Things:

1. The Twhomp Behavior [1 & 2] B-Param 2 Sets the height.
2. The Amp behavior B-Param 2 Sets The "Radio" Rotation.

(Bad English, Sorry (Again,Again))
Rydia
270
good riddance!
Level: 33


Posts: 101/278
EXP: 212610
For next: 16569

Since: 02-18-12
From: Mist

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 02-27-12 07:09:24 PM Link | Quote
So I got the Level Importer to work for the game, but when I clicked Import it said that the .obj file wasn't the right file..help? I'm so close to a test.. :3
messiaen
Catgirl
Level: 64


Posts: 1075/1085
EXP: 2160495
For next: 53602

Since: 11-20-07


Since last post: 3.0 years
Last activity: 2.0 years

Posted on 02-28-12 12:20:06 AM Link | Quote
Format and example of the function list file:

[FLoop]
Text=Breakable when hit by a cannon. Needs a collision sphere. (0x802AA1B8)
Tag=802AA1B8
[FLoop]
Text=Clock-like rotation on Y Axis (0x802AA774)
Tag=802AA774
[FLoop]
Text=Y Rotation + produces fire (0x802AF3FC)
Tag=802AF3FC
[FLoop]
Text=Twomp-like Behavior (0x802AD34C)
Tag=802AD34C
[FLoop]
Text=Elevator movement (0x802ADF6C) [has init]
Tag=802ADF6C
[FInit]
Text=Processes Behavior Params for 0x802ADF6C (Elevator function)
Tag=802ADDF8


FLoop adds new 'loop' function (those between 0x08000000 and 0x09000000 blocks in the behavior data), while [FInit] adds a new initialization function. "Text" is the description displayed on the function combobox, and Tag is the function address. They must appear in this specific order.

The [has init] part of description means there's an initialization function that should probably be coupled to ensure the complete function of the behavior.

I will release a stand-alone version of the behavior generator so people can experiment those functions. A good starting point is to use the Green Pipe model ID and collision data, since it's available on all banks.
Dudaw
Member
Level: 16


Posts: 41/49
EXP: 17187
For next: 3069

Since: 01-06-11


Since last post: 4.0 years
Last activity: 1.0 years

Posted on 02-28-12 06:16:13 PM (last edited by Dudaw at 02-28-12 06:36 PM) Link | Quote
Here's the function list:
http://dudaw.webs.com/sm64docs/sm64_functions_list.txt
- I added also "does/doesn't have initialization function" to accommodate the format of the importer list you showed.

and the behavior list:
http://dudaw.webs.com/sm64docs/sm64_behavior_list.txt

Anyone who wants to add onto or revise either of these should do so, as they're a bit sloppy.
Tell me and I'll update the docs.

Also, I don't know if you got this command added to the behavior generator, but it's useful:

From Cellar Dwellar's notes:


0f [xx] [xx xx]
Increment object field
Takes a 16 bit signed int, and adds it at the specified index in the object structure.
[1 ] unsigned index to write to (offset = 0x88 + 4*index) (see list of used values)
[2,3] value
0x00 => 0x088
0x10 => 0x0c8 y rotation
0x12 => 0x0d0 x rotation
0x13 => 0x0d4 y rotation
0x14 => 0x0d8 z rotation
0x1a => 0x0f0



If I remember correctly, field 0xf0 has something to do with animations that are set in the geo layouts.
"Value" is also used to set speed for the rotations, but not sure if the same applies to 0xf0.
Rydia
270
good riddance!
Level: 33


Posts: 105/278
EXP: 212610
For next: 16569

Since: 02-18-12
From: Mist

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 02-28-12 06:20:33 PM Link | Quote
It appears I'm still having trouble with my file, the original saved file is a .blend file, but apparently just changing it to an .obj file takes more work than I thought...still could use help though...
Dudaw
Member
Level: 16


Posts: 42/49
EXP: 17187
For next: 3069

Since: 01-06-11


Since last post: 4.0 years
Last activity: 1.0 years

Posted on 02-28-12 06:23:40 PM Link | Quote
Originally posted by Chozite
It appears I'm still having trouble with my file, the original saved file is a .blend file, but apparently just changing it to an .obj file takes more work than I thought...still could use help though...


"File > export > wavefront (.obj)"

Your question has been answered.
Rydia
270
good riddance!
Level: 33


Posts: 107/278
EXP: 212610
For next: 16569

Since: 02-18-12
From: Mist

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 02-28-12 06:30:33 PM (last edited by Chozite at 02-28-12 06:48 PM) Link | Quote
Well obviously...Haha, thanks Dudaw.

EDIT: I imported it but now when Mario starts I cannot move anywhere, would this be some sort of effect taking place from the settings in the importer or what...?
Dudaw
Member
Level: 16


Posts: 43/49
EXP: 17187
For next: 3069

Since: 01-06-11


Since last post: 4.0 years
Last activity: 1.0 years

Posted on 02-28-12 06:51:52 PM Link | Quote
Originally posted by Chozite
Well obviously...Haha, thanks Dudaw.

EDIT: I imported it but now when Mario starts I cannot move anywhere, would this be some sort of effect taking place from the settings in the importer or what...?


Check "enable death floor at bottom" and scale the model bigger.
messiaen
Catgirl
Level: 64


Posts: 1076/1085
EXP: 2160495
For next: 53602

Since: 11-20-07


Since last post: 3.0 years
Last activity: 2.0 years

Posted on 02-28-12 06:54:58 PM Link | Quote
Originally posted by Dudaw
Here's the function list:
http://dudaw.webs.com/sm64docs/sm64_functions_list.txt
- I added also "does/doesn't have initialization function" to accommodate the format of the importer list you showed.

and the behavior list:
http://dudaw.webs.com/sm64docs/sm64_behavior_list.txt


Thanks Dudaw, I'll add most of those to the functions list, discovering what works or not will be up to the users. I'm using the 0x0F command to implement X/Y/Z rotation on any object.

One thing I want to implement sometime is a behavior command to disable the object based on a few conditions. For instance, something like:

If RAM Value (number of stars, for instance) equals / is less than / is more than arbitrary value THEN remove object.
Rydia
270
good riddance!
Level: 33


Posts: 108/278
EXP: 212610
For next: 16569

Since: 02-18-12
From: Mist

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 02-28-12 08:37:58 PM (last edited by Chozite at 02-28-12 09:12 PM) Link | Quote
So now, I'm sorry to still be bugging you guys because I know you've got your own to work on, but now I finally have it tested, the only problem is this tile glitch that shows only half the grass tile for each tile...help..? Here's a picture to show you what I mean... :3

Texturing is my only problem now..

EDIT: All fixed up now guys, but just a little texturing error, as it used the wrong texture for the wall
Dudaw
Member
Level: 16


Posts: 45/49
EXP: 17187
For next: 3069

Since: 01-06-11


Since last post: 4.0 years
Last activity: 1.0 years

Posted on 02-28-12 09:45:43 PM (last edited by Dudaw at 02-28-12 10:31 PM) Link | Quote
Originally posted by messiaen

One thing I want to implement sometime is a behavior command to disable the object based on a few conditions. For instance, something like:

If RAM Value (number of stars, for instance) equals / is less than / is more than arbitrary value THEN remove object.



Wouldn't it be easier to do that according to a behavior parameter?
This seems to work OK, and you don't have to make multiple scripts to do the same thing:



#include <n64.h>
#include <explode.h>

MarioStruct *Mario = (void*)M64_MARIO_STRUCT;
struct object_struct **Obj = (void*)M64_CURR_OBJ_PTR;

void _start ( void )
{
asm volatile("la $gp, _gp");

if (Mario->stars >= (*Obj)->behav_param) (*Obj)->active = 0;
}



For some reason, trying to make the object enable/disable according to the other parameter didn't work for me.
For instance:
param1 = 0: disable, 1: enable
param2 = amount of stars required.
messiaen
Catgirl
Level: 64


Posts: 1077/1085
EXP: 2160495
For next: 53602

Since: 11-20-07


Since last post: 3.0 years
Last activity: 2.0 years

Posted on 02-28-12 10:54:58 PM Link | Quote
Actually, thinking it better, none of the two options is totally satisfactory.

1) If you use Behavior Params, you may have conflicts with other functions. Think for instance of a NPC talking object, which uses Behavior Params to store message ID / other informations. A lot of functions rely on BParams.

2) If you encode the required data into the behavior, BParams will be available but the behavior will be less flexible.

I'm still leaning torwards option 2, because there's plenty of free space for custom behaviors (300, one for each possible custom object. Each behavior is reserved 0x100 bytes, much more than needed, so experienced users can actually use this extra space for additional behaviors if they want).
Rydia
270
good riddance!
Level: 33


Posts: 125/278
EXP: 212610
For next: 16569

Since: 02-18-12
From: Mist

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 03-08-12 03:33:43 PM Link | Quote
New music is lovely, as we all know, but I'm just having a slight problem with it, because I dunno how to get my file to properly be an m64 file to import it with, if anyone could help me the theme is "Yoshi's Island: Athletic" :3
cpuHacka101
Member
Level: 12


Posts: 17/25
EXP: 6230
For next: 1691

Since: 02-02-11
From: La Quinta, California

Since last post: 4.0 years
Last activity: 3.0 years

Posted on 03-17-12 04:52:54 PM (last edited by cpuHacka101 at 08-23-12 04:00:10 AM) Link | Quote
Hey, messiaen, perhaps you can add an eye-dropper function for the RGB code used for fog. (So it detects the color of a pixel on your screen)
Pages: 1 2 3 4 5 6 7 8 9 10 ... 46 47 48 49 50 51 52 53 54 55Next newer thread | Next older thread
Jul - SM64 Hacking - Mario 64 Level Importer New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

31 database queries, 8 query cache hits.
Query execution time: 0.257225 seconds
Script execution time: 0.016804 seconds
Total render time: 0.274028 seconds