Jump to content

SoulofDeity

Member
  • Posts

    437
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by SoulofDeity

  1. The cutscenes themselves don't, but Jabu Jabu's actor might. I'm sure the actors must receive some event when a cutscene begins that tells them not to use their normal behaviour.
  2. @xdan looking badass :3 I missed a few pages btw in my absense, is this Collada parser for that Dreamcast game you were working on? OFF TOPIC: It was more a less about bashing me. He misinterpreted what I had said and since he has some sort of beef with me for reasons I can't recall, he wanted to start an argument.
  3. Thanks man, had no idea about that. I knew that you could target a specific architecture where it would generate native code stubs, but I had no idea you could compile the entire thing to native code. On a side note, there are many ways in which C# is superior to Java. Type-safety, reflection, and delegation are some major areas. Plus there's the addition of custom attributes, interfaces, the use of destructors, pinvoking, and overall the runtime library is much richer.
  4. SoulofDeity

    Some questions

    Yes, it is a JFIF background. The N64 only has 4KiB of TMEM to work with, so it uses texture atlases and renders the textures in tiles. 32*64*2 (rgba16) = 4096 = 4KiB; it just happens to be the maximum tile size they could use to render it. Skyboxes are rendered the same way as well; with the actual textures being 128x64 & 128x128 in size (though only the upper-left 120x64 and 120x120 of the textures is actually used) EDIT: It's likely you may be looking in the wrong place. Most textures in a map should be in the corresponding scene file.
  5. I've tried a ton of languages, and imho C# is the best language hands down when it comes to syntax. It just sucks that no one has written a CIL to native code compiler yet.
  6. Mallos may have a point. Link's position at the start of the sequence could be relative to JabuJabu's position. On a side note, what I find most peculiar about this is that in that last pic, Link is in a perfect t-pose. Afaik, there are no animations with Link in that position. I wonder if there is some sort of quaternion/vector math that can put all the hierarchies into rest position. If someone could figure this out and send me the info, I'd be happy to patch my import script.
  7. ^ That would be the issue. The gameplay keep uses segment 5 for all of it's display lists, and UoT .90b4 only loads a file under that segment if the file name is gameplay_keep. In other cases like the majora's mask models, the reason why they are often messed up is because MM uses a moody combiner mux, allocates segment numbers slightly differently (eg. iirc segment A is use for mask display lists), and lastly because some of these tools and video plugins for the n64 expect specific patterns for loading textures ratherly than properly emulating the use of tiles and the F3 LoadBlock GBI packet. Someone might want to note this on the UoT's download page.
  8. No, it's really stupid. It costs like $20 to buy or make the equipment to dump it yourself. No one in their right mind would mail a $400 game to someone else under the conditions of "trust me, I won't keep it." I place a lot of trust in my friends, but I would never mail them something cross-country that cost me half a grand expecting to get it back. That's one of those things that when it bites you in the ass all you can do is blame yourself.
  9. I don't have any money right now, but if someone were to be able to send me said sandwich and get me a bag of chips, I'd eat be able to eat them. /jk Seriously though Antidote, that was like, really stupid asking someone to send you a $400 game and the equipment to dump it. Or rather, someone would have to be a complete moron to trust you enough to do it...
  10. Really bad intercourse. Still gettin laid, and at least you have something to laugh about over the watercooler. Dead end office career you enjoy that pays really really well or a career you enjoy and get payed for a little less that provides you with experiences to meet many people and travel the world at your own desire?
  11. It doesn't hit home too hard. Generally, you just feel really sympathetic for Tomoko because she tries so hard to change herself and it always bites her in the ass. It's always really funny at first and you're facepalming like hell while laughing hysterically, but then you see how much it hurt her to go through that and it just becomes very depressing... It almost feels like the entire world is out to obliterate her every attempt at having a normal relationship with someone. That's the problem right there For native english speakers, dub is just horrible. You feel like you're watching a kiddie show. The voices don't fit the characters, nothing is pronounced right, they stress on the wrong parts of sentences, the translations are screwed up and they censor really dumb stuff.
  12. I'm not familiar with photoshop because none of the software I use is pirated.
  13. Make sure that you are adding the transparency layer to your 128x1 tga before you drop it onto tga2rgba16. That tool is very picky about the color format.
  14. Just finished cleaning up the API a lot and adding a new Group class. Now there's a set of simple static functions to use: Actor.Spawn(actor, objectname) Scene.Load(scene) Scene.Unload(scene) Scene.AddGroup(group) Scene.RemoveGroup(grou) Scene.AddActor(actor) Scene.RemoveActor(actor); Room.Load(room) Room.Unload(room) Room.AddObject(object) Room.RemoveObject(object) Scene.AddGroup and Scene.RemoveGroup don't need to be called manually, as Scene.AddActor and Scene.RemoveActor will add or remove the groups to the scene as needed. Also, Actor.Spawn is only called to create a new actor during gameplay, not for when constructing maps. As an example, here's the code that creates the default scene: Assets.Scene scene = new Assets.Scene("Default Scene"); Assets.Actors.DebugCamera ec_actor = new Assets.Actors.DebugCamera(); scene.AddActor(ec_actor); Assets.Room room = new Assets.Room("Default Room"); scene.AddRoom(room); Assets.Object ec_object = new Assets.Object(ec_actor, "Debug Camera"); room.AddObject(ec_object); Assets.Scene.Load(scene); Assets.Room.Load(room); Note that you can load several scenes or rooms at once, but only the last one to be called with Scene.Load or Room.Load will be the current scene or room. Looking smexy, right? :3
  15. Was debating on whether or not I should make the importer as a blender plugin or a separate program this whole time and well...I think it's decided. I have no idea how or what kind of roids got into my bloodstream, but within a matter of a few hours I've written an entire framework for a game engine based on Zelda64's in C#. There are 2 main namespaces; Graphics and Assets. The Graphics namespace contains wrapper classes for low level rendering. This includes Frame, Surface (abstract base class for Render and Texture), Render, ColorFormat (allows custom color specification, with presets for common color types like RGBA16 and CI8), Filter (used selecting sampling modes, things like nearest-neighbor, bilinear, etc. along with mipmap and antialiasing levels), Palette, Texture, Shader, Program (container for multiple shaders which are linked together), and Mesh The Assets namespace defines the assets and make up the visible part of the framework itself. This includes Scene, Room, Actor, Object, Script, Image (used by Graphics.Texture, but can be used for other things), and Material. The Script class is the magic behind it. There are a set of events that executed at certain stages. When the static function Scene.Load is called, it sends a Destroy event to the current scene, loads a new one, and sends a Create message to the new one. These messages is passed to all of the rooms that are currently enabled, which in turn passes them to each object. Objects that have the Scripts.Camera script attached to them register themselves as a camera to the Scene.CameraList at the Create event which prevents them from being passed the Render event like normal objects and instead the entire scene is rendered for each object with that script attached; allowing for multiple viewports and optionally reflection. There are currently 4 events: Create, Destroy, Update, and Render. I still need to add a 2D render event. In summary, it started off as a simple importer but seems to be headed in the direction of becoming a full-blown Zelda64-inspired game engine.
  16. The api recently had a complete change as of 2.5, it's very unlikely that's they've decided to make yet another enormous leap so soon. I will update however just to make sure, thanks Ended up creating a class to generate listboxes since I'll need a few of them. Makes my job a little easier...
  17. Working on the new toolbox for V5 of my blender script. It's an enormous pain in the ass...Some of the controls like the list are way underdocumented (only 1 or 2 old examples on the web which don't work, I pretty much had to stab at it for hours on end until it worked) and you can't just create custom properties; you have to assign them to the current scene context and register operators to work with them. In short, it's like 100x more difficult than writing a normal import script. On the bright side, I found out you could test using Blender's built in script editor.
  18. Has anyone here watched Watamote? Laugh...cry...laugh because you're crying...cry because you're laughing...generally feel like an asshole out of sympathy?
  19. The original script was able to rip models and animations from the game, I'm going back and improving my previous work to add multitexturing and combiner support. If I'm up for it though, I may write an exporter.
  20. Working on V5 of my importer. I've pretty much come to the conclusion that it needs to be written as a separate program now because there's some functionality that's too difficult to do with the blender api. However, I was tweaking my old script a bit just to dump secondary textures and made a weird discovery I haven't added combiner support yet, so obviously the texture was fixed manually, but I noticed that in order to get the correct granularity for the grass, tile 1 had to be rendered with 4 times the uv-scale of tile 0. Or another works, it was scaling the uv's so that (logically) the material was 256x256 in size.
  21. Like mzrules stated. It's a little tricky to replace though, here's a small tutorial. You'll need: GIMP tga2rgba16 Hex Editor (I prefer HxD) Step 1 - Setting up the texture Create a new blank image that's 128x384 with a black background Open your images up in GIMP. If it's a cubemap, drag from the ruler bar on the left and top to set guides and use the Image -> Transform -> Guillotine tool to slice it (optional, it's just faster) If you've got full side images (meaning the horizon is about in the center of the image), crop the images to a little over half their size. Generally, what I do is first scale the image down to 256x256 and crop it to 256x150 Scale the side images down to 125x64 Scale the top image down to 125x125 Place them into your black image, from top to bottom, in the order front, back, left, right, top. There will be a small black margin on the right and bottom. Go to Image -> Mode -> Indexed and set the maximum colors to 128. Save as texture.tga with RLE disabled and the origin set to the Top-Left Step 2 - Converting the texture Open up your texture.tga file in your hex editor. Scroll all the way down to end of the file. You'll see "TRUEVISION-XFILE". Place your cursor right before the 'T' and go back 8 bytes.This is the true end of the texture data. Starting here, select 0xC000 bytes Create a new file copy those 0xC000 bytes to it. Save the new file as texture.raw Step 3 - Converting the palette Create a new image in gimp that is 128x1 in size and save it as palette.tga with RLE disabled Open texture.tga up in your hex editor and go to 0x00000012 Copy 0x180 bytes Open palette.tga up in your hex editor and paste those 0x180 bytes at 0x00000012 Save and re-open palette.tga in gimp Go to Layer -> Transparency -> Add Transparency Layer Save image Drag and drop palette.tga onto tga2rgba16 Step 4 - Inserting into the game Go to the offset of the skybox file in the rom. Paste-Write (Ctrl-B ) the data from texture.raw Paste-Write (Ctrl-B ) the data from palette.raw Save game, you're done
  22. Done by request: Halo skybox in OoT Was hard to take a picture...I'm using a keyboard so the camera swings around, and the glide64 plugin was glitching out on some textures.
  23. I'm getting the same error as well; not just with the experimental opengl rendering, but with the ARB one as well.
  24. If I had the textures, I'd do it.
×
×
  • Create New...

Important Information

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