Jump to content

xdaniel's Random Junk


xdaniel
 Share

Recommended Posts

First of all, that might be a bit difficult, Naxy... I mean, we're living thousands of kilometers apart from each other! XD

 

Second, it's still awhile off, but...

 

Posted Image

 

...it's got a proper name now! And it's an instrument so sharp, it can cut you! ...and yes, that was a lame pun. And the description is unwieldy and overblown, but what the hell.

 

Anyway, before the release there's still some stuff to do, mainly implementing collision types and related information, plus documentation for all the options and settings as well as a little tutorial. Some stuff I've been tinkering with, multi-texturing for one (can sorta make it display two textures mixed ala Hyrule Field's grass, but can't actually load the second texture properly :D), I will look into adding at a later date. But yeah, once the things I mentioned are done, there should be no reason to not release a first - for the moment source-less, public testing - build. The second build will have the full source with it and/or it will be posted to a SVN http://core.the-gcn.com/public/style_emoticons/default/thumbsup.gif

Link to comment
Share on other sites

  On 8/23/2011 at 1:18 PM, Arcaith said:

You are a legend :3 Can you squeeze in texture tiling settings? Pretty please? :3

 

Oh, right, almost forgot about that... Per-group setting of clamp/wrap/mirroring will be easy to do, I suppose, that's good? Also, I'm not a legend, and even if I was, I wouldn't be one without everyone who came before me http://core.the-gcn.com/public/style_emoticons/default/thumbsup.gif
Link to comment
Share on other sites

  On 8/23/2011 at 1:06 PM, xdaniel said:

First of all, that might be a bit difficult, Naxy... I mean, we're living thousands of kilometers apart from each other! XD

http://www.youtube.c...etailpage#t=18s

 

  On 8/23/2011 at 1:06 PM, xdaniel said:

But yeah, once the things I mentioned are done, there should be no reason to not release a first - for the moment source-less, public testing - build. The second build will have the full source with it and/or it will be posted to a SVN thumbsup.gif

I look forward to implementing Cabin Maze once again with actors without it being such a pain in the ass. \o/

 

Also, just for the record, I think Zeth forgot to mention I was the one who built the field map--mainly for the purposes of testing moving water textures in custom maps--so if you want to give credit to whoever built the map in the about window, that would be me.

 

Also, mirroring/tiling editing. My face basically melted. That will be extremely useful for SketchUp users, since its texture placement utilities are somewhat limited.

Link to comment
Share on other sites

  On 8/23/2011 at 3:28 PM, Naxylldritt said:
Maybe you're right, because for one, it's actually only ~1500km between here and Helsinki...

 

  On 8/23/2011 at 3:28 PM, Naxylldritt said:

Also, just for the record, I think Zeth forgot to mention I was the one who built the field map--mainly for the purposes of testing moving water textures in custom maps--so if you want to give credit to whoever built the map in the about window, that would be me.

 

I think he might've mentioned, but I forgot... well, changed it~

 

Anyway, I'll be taking a break from working on this for today, as there's still some real-life stuff to do (you know, grocery shopping and the works).

Link to comment
Share on other sites

SanguinettiMods: While, I believe, I do know how the area title display works, I have no idea about on-screen maps (or the start menu map stuff, while we're at it). Also, while surely needed in a complete mod, I don't think those are too important for this initial release - I guess I will look into those eventually, but for now, sorry.

 

Also, before I (hopefully http://core.the-gcn.com/public/style_emoticons/default/thumbsup.gif) will go to bed for tonight...

 

Posted Image

 

I think all that's left for now before release #1 is adding support for editing the scene's exit list and getting a bit of documentation written. That said, Arcaith, mind if I bundle your test dungeon with the program as some kinda "demonstation material", so that users can see how stuff is done by means of a working project?

Link to comment
Share on other sites

Well gee it looks like I won't have to write a new map importer - which is probably a good thing, considering how much GUIs and I disagree. I do plan, however, to make a command line tool which will attempt to do an identical import based the generated XML from this application so that *nix people can at least import areas which have been configured with this tool. It would also be rather neat to streamline this stuff in makefiles. As always, excellent work xdaniel.

Link to comment
Share on other sites

Arcaith: Alright, will add it to the package then, thanks! :D

 

Zeth: Yeah, I had looked into that as well, and it seems that the RAM segment setup (for those 0xDE DList calls to ex. segment 0x08) is done via assembly, according to a table at 0xBA1544 (ROM) / 0x10D544 (code). Here's my notes of that, maybe someone with MIPS knowledge like spinout or DeathBasket can figure out more?

 

 

  Reveal hidden contents

 

 

  Reveal hidden contents

 

spinout: Dunno if it would help, seeing how it's in C#, but would an "advance copy" of the source help you with writing a command line importer for my scene XMLs? As mentioned, I want to release the source anyway, but only after the first release and in turn implementing whatever (reasonable) ideas, requests and bugfixes people have.

 

Also, more on-topic stuff, a preview of the incomplete documentation:

 

 

  Reveal hidden contents

 

Also also, I probably won't get to doing much work on this over the weekend, since I'll be visiting my family and won't be back until either Saturday or Sunday afternoon. Maybe I'll get this done by Sunday evening or so, although don't take this as a release date or any nonsense like that :P

Link to comment
Share on other sites

Collaboration is an important part of progress; you guys should look over each others' work and fill in as many gaps as you can. That way we collectively have highly functional pieces of software. I think that's about the best I can offer regarding programming stuff these days :D;

Link to comment
Share on other sites

From what I can tell the 'bb' you mention in the flags entry of the scene table is used as an index for a list of addresses at 0x8012A3A4 in RAM. The addresses are then loaded and jumped to and the code there decides which textures to load. I haven't looked at it in much detail but the Deku Tree's entry (0x13) will check whether it's day or night (word at 8015E670) and then use that information to load the right texture for the entrance. The lava in Dodongo's Cavern changes texture every two frames (I think), based on a counter at 80223E04.

We could make use of this by changing the texture pointers but it doesn't look like we can do much else at the moment without having to write an assembly hack for it.

Link to comment
Share on other sites

  On 8/25/2011 at 2:33 PM, DeathBasket said:

From what I can tell the 'bb' you mention in the flags entry of the scene table is used as an index for a list of addresses at 0x8012A3A4 in RAM. The addresses are then loaded and jumped to and the code there decides which textures to load. I haven't looked at it in much detail but the Deku Tree's entry (0x13) will check whether it's day or night (word at 8015E670) and then use that information to load the right texture for the entrance. The lava in Dodongo's Cavern changes texture every two frames (I think), based on a counter at 80223E04.

We could make use of this by changing the texture pointers but it doesn't look like we can do much else at the moment without having to write an assembly hack for it.

 

Well, that sounds like a perfect opportunity to introduce an extension of the scene/map header format - something, for example, which uses the unused bytes of, lets say, the mesh header command - 0Azzzzzz xxxxxxxx - z is normally 0, but in this case, a hack could assume that if it is nonzero that it is to use the bank of x ((x & 0xFF0000000) | z) - and at that point is a simple and extendable bytecode (which SharpOcarina would write) which an interpreter reads to do these custom textures. Games without these hacks would still function perfectly fine, as the game normally ignores the 'z' bytes. I'm sure DeathBasket and/or myself could throw something together.
Link to comment
Share on other sites

  On 8/25/2011 at 5:20 PM, spinout said:

Well, that sounds like a perfect opportunity to introduce an extension of the scene/map header format - something, for example, which uses the unused bytes of, lets say, the mesh header command - 0Azzzzzz xxxxxxxx - z is normally 0, but in this case, a hack could assume that if it is nonzero that it is to use the bank of x ((x & 0xFF0000000) | z) - and at that point is a simple and extendable bytecode (which SharpOcarina would write) which an interpreter reads to do these custom textures. Games without these hacks would still function perfectly fine, as the game normally ignores the 'z' bytes. I'm sure DeathBasket and/or myself could throw something together.

 

Now that's an interesting idea. If you can get something like this going, I'd gladly add support for it in the program. The bytecode interpreter could allow one to set up a RAM segment that reflects the current texture for the animation, ex. taken from a number of consecutive textures in the current scene file, plus the animation speed, and instead of pointing to a single texture inside room or scene, the surface's SETTIMG command would point to that RAM segment. I'm also wondering if this could allow ex. something like Jabu-Jabu's wobbly walls (unless we know how they work...?).

 

(Meh, hope this made sense and wasn't redundant, I'm tired and about to go to bed ^^")

Link to comment
Share on other sites

  On 8/25/2011 at 10:12 PM, xdaniel said:

 

Now that's an interesting idea. If you can get something like this going, I'd gladly add support for it in the program. The bytecode interpreter could allow one to set up a RAM segment that reflects the current texture for the animation, ex. taken from a number of consecutive textures in the current scene file, plus the animation speed, and instead of pointing to a single texture inside room or scene, the surface's SETTIMG command would point to that RAM segment. I'm also wondering if this could allow ex. something like Jabu-Jabu's wobbly walls (unless we know how they work...?).

 

(Meh, hope this made sense and wasn't redundant, I'm tired and about to go to bed ^^")

 

I wrote an entire bytecode interpreter and was writing some example code before I realized it was an oversimplified and limited MIPS. I then removed everything related to bytecode and ended up with this. As far as animating textures goes, switching textures is largely inefficient but having an image that is, say, two rows too tall and increasing the pointer by four bytes every xth frame and then at the end of the image going back to the beginning would produce a scrolling texture without very much overhead. The called functions (in the example I linked to, nested as an extension of the mesh command) would be nested in the map file. It would be up to the users to generate a binary for your program to insert, and you could also have a few 'configurable' binaries (ex: lights going on/off at certain times, scrolling water) included in SharpOcarina.
Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.