-
Posts
437 -
Joined
-
Last visited
-
Days Won
43
Content Type
Profiles
Forums
Downloads
Calendar
Bug Tracker
Everything posted by SoulofDeity
-
It looks great, though I'm curious, how are you doing the shadow effect in the bottom left pic?
-
Thanks for point it out, but I can't get it to work either. It always crashes when converting the textures (tried both png and 24-bit bmp)
-
Since I couldn't get xdaniel's model2n64 to work for me, I decided to go back to using spinout's wotf. Since a majority of the problems with people using it are just getting it to work at all, I went ahead and created another extension for z64shell that comes with a bare-bone minimal python distro (just the precompiled binaries needed to make spinouts scripts work) and added a new instruction called obj2zobj. The arguments are simple, just "obj2zobj input.obj" or "obj2zobj input.obj output.zobj". You can download the extension here ---------- In other news, I've decided to just say "screw linux users" and resume work on Hylian Cartographer in the way I find most comfortable. I'm making the effort to write the program, they can meet me halfway by dualbooting or using Wine. There's nothing impressive to show yet, just trying to work out some annoying C# bugs to get transforms working properly, but I'll keep everyone updated.
-
I think you mean InstrEd. you can find it on DeathBasket's site At least, that's what he had me use.
-
do you mean zdec or zre?
-
Well the easiest verification is just to look at the output in the console. It'll say "programname by SoulofDeity"; and if it doesn't show up there using "--help" will print my name. If I didn't lose my winstuff folder in an ubuntu crash, I'd still have the sources to a majority of those.
-
yeah, my programs are kinda all over the place, so I wouldn't blame you.also, should note that this is the first place I've uploaded or stated anything about z64shell. I've mainly just been using it myself, and I think people might find it really useful.
-
It's been a long time since I've been really active on the site, and I'm not really sure if I've made a topic for my software (or even if this is the correct category?) Anyway, here yuh go. [*]dl2obj - this tool was my first attempt at ripping models from the game. it converts display lists in zobj / zmap files to wavefront obj's and extracts the textures as .tga files. really buggy, I suggest using one of my later programs instead. Lost the source to it, otherwise I'd post it [*]dlpos - this lets you translate, rotate, and scale display lists. some notes, translations are done as signed short integers (-32768 to 32767), rotations are done in degrees, and scales are done on a 0 to 1 scale (meaning 1 = 100%; 1.5 = 150%; 2 = 200%; etc). Lost the source to this one too, otherwise I'd post it [*]fcint - a tool I wrote a while back for converting fc instructions on glitchkill. I haven't used it in a long time, and I'm not 100% sure it's even done correctly. The source for it is here; but I strongly suggest building the source yourself from the following code: [*]n64conv - a replacement for the n64gfx tool in the ZLE2 package. it converts raw texture data into tga files. to work, the files must be named in the following format: "filename_WxH_fmt.bin" where W is the width, H is the height, fmt is the format (i4, i8, ia8, ia16, rgba16, rgba32); and the extension doesn't necessarily have to be .bin. no arguments, just drag-n-drop. Again, sry, no source [*]ovldesc - a tool I wrote to dump information about actor files such as the locations of the sections and the relocations of the values and whatnot. Again, sry, no source [*]tga2i4 - converts an uncompressed RGBA32 .tga file to raw I4 texture data. No args, just drag-n-drop. Again, sry, no source [*]tga2i8 - converts an uncompressed RGBA32 .tga file to raw I8 texture data. No args, just drag-n-drop. Again, sry, no source [*]tga2rgba16 - converts an uncompressed RGBA32 .tga file to raw RGBA16 texture data. No args, just drag-n-drop. Again, sry, no source [*]tga2rgba32 - converts an uncompressed RGBA32 .tga file to raw RGBA32 texture data. No args, just drag-n-drop. Again, sry, no source [*]z64dump - dumps information about the rom such as the location of the file, object, and actor tables and information about the actors including their object/group/actor #'s and the offsets/names of the objects they use. z64dump2 is currently being worked on. You can download the source here [*]z64rip - my second attempt at a tool to rip zobjs and zmaps as obj or smd files, and an utter failure in my opinion. Nonetheless, it's here if you want it. Again, sry, no source [*]z64dump2 - a prerelease of z64dump2. it doesn't have any of the documenting stuff like the original z64dump has yet, but it is capable of byteswapping, decompressing, and recalculating the crc of a rom in place just by dragging and dropping the rom on it, and can extract files from the rom. file type detection is also a lot better than zdec, with the exception that it can't yet detect which file is the .ztxt file yet in non-majora's mask roms. You can download the source here [*]stripjs - a program I wrote to compress javascript code. also works fairly good with C code as well. might be useful if you're looking for a code obfuscator. you can download the source here [*]zelda64 blender import script - a python plugin I wrote for blender to import zobjs and zmaps from Zelda64 games. zobj's are imported full skinned and ready for posing. Still a work in progress. If the faces appear reversed when importing, try using this one instead. You'll need Blender 2.6 or higher and Python 3 for it to work. Installation is simple, just open Blender, change to the user preferences view, go to the addons tab, install from file; check to enable it, go back to 3d view, and hit Ctrl-U to save your user preferences. [*]nettest - I little something I wrote while working on the networking part of my game engine. I didn't like how it turned out, but its still pretty useful if you're trying to figure out how to download webpages using window's sockets. you can download the source here [*]Hylian Cartographer - the original build of Hylian Cartographer. Didn't do much aside rom filesystem editing and patch managing, and I highly doubt it'll work for anyone anyway because it was linked against a no longer available msvc11 beta runtime. Sorry, no source [*]z64shell - a bunch of windows batch scripts I wrote that set up an a very user friendly environment for modding. setup is simple, just run the shell once and copy your unmodded roms to the roms folder. There are 10 instructions: backup, decompress, emu, extract, fix, ide, makepatch, patch, restore, and rom. To begin modding a rom, you first use the 'rom' instruction, like "rom zelootma". This will copy the rom from your rom's folder to the main folder. Whenever you start the shell, it does a search for the first .z64 file it can find in the main folder. If one exists, it'll use that one by default, so there's no need to use the "rom" instruction every time you start the shell. Next, you type "backup" to create a backup. You can also create multiple backups by providing a name, like "backup beforetest". These backups can be restored using the "restore" command. "decompress" decompresses the current rom (obviously), and "extract" extracts it. extract also sorts the files it extracts by file type, making files easier to find. "makepatch" creates a patch. you can optionally provide a name for the patch like "makepatch mypatch". these patches are stored in the patches folder sorted by rom type and can be applied using the "patch" instruction. "fix" fixes the crc of the rom, which is useful when applying patches that affect the first 1MB of the rom. The last 2 rely are rather large files, which I decided would be best to include separate. The first is "ide" is opens the ide used for assembly hacking. by default, this is galatea, but you can change it by editing a few lines in the z64shell.bat file. The second is "emu" which opens the emulator and plays the rom if the emulator supports command line arguments. by default, it opens nemu64, but again this can be changed. it also creates a configuration file for nemu64 (if it doesn't exist) that tells where to store the save files so they're not cluttering your rom's folder. You can download them both ready for the package here or optionally get galatea yourself here and nemu64 here ------------------------------------------------------------------ Some other stuff I've built, but not necessarily made from scratch. [*]x86-elf gcc - an x86-elf gcc cross compiler I built when I was goofing around with operating system development. [*]n64sdk - a fully working setup of the official n64 sdk. took me forever to get working properly. much of the tools they used are 16-bit, so you'll need to be on a 32-bit operating system or run it in a virtual machine like I do to use it.
-
that vid just makes me miss the gamecube even more...I honestly wish it was last-gen
-
it's not really a mod, but I wrote a small program to create combiner instructions in case anyone needs it #include <stdio.h>/* Color combiner constants: */#define G_CCMUX_COMBINED 0#define G_CCMUX_TEXEL0 1#define G_CCMUX_TEXEL1 2#define G_CCMUX_PRIMITIVE 3#define G_CCMUX_SHADE 4#define G_CCMUX_ENVIRONMENT 5#define G_CCMUX_CENTER 6#define G_CCMUX_SCALE 6#define G_CCMUX_COMBINED_ALPHA 7#define G_CCMUX_TEXEL0_ALPHA 8#define G_CCMUX_TEXEL1_ALPHA 9#define G_CCMUX_PRIMITIVE_ALPHA 10#define G_CCMUX_SHADE_ALPHA 11#define G_CCMUX_ENV_ALPHA 12#define G_CCMUX_LOD_FRACTION 13#define G_CCMUX_PRIM_LOD_FRAC 14#define G_CCMUX_NOISE 7#define G_CCMUX_K4 7#define G_CCMUX_K5 15#define G_CCMUX_1 6#define G_CCMUX_0 31/* Alpha combiner constants: */#define G_ACMUX_COMBINED 0#define G_ACMUX_TEXEL0 1#define G_ACMUX_TEXEL1 2#define G_ACMUX_PRIMITIVE 3#define G_ACMUX_SHADE 4#define G_ACMUX_ENVIRONMENT 5#define G_ACMUX_LOD_FRACTION 0#define G_ACMUX_PRIM_LOD_FRAC 6#define G_ACMUX_1 6#define G_ACMUX_0 7#define SetCombine(pkt, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1) { pkt[0] = 0xFC000000 | (((G_CCMUX_##a0 & ((0x01 << 4) - 1)) << 20) | ((G_CCMUX_##c0 & ((0x01 << 5) - 1)) << 15) | ((G_ACMUX_##Aa0 & ((0x01 << 3) - 1)) << 12) | ((G_ACMUX_##Ac0 & ((0x01 << 3) - 1)) << 9) | ((G_CCMUX_##a1 & ((0x01 << 4) - 1)) << 5) | ((G_CCMUX_##c1 & ((0x01 << 4) - 1)))) & ((0x01 << 24) - 1); pkt[1] = ((G_CCMUX_##b0 & ((0x01 << 4) - 1)) << 28) | ((G_CCMUX_##d0 & ((0x01 << 3) - 1)) << 15) | ((G_ACMUX_##Ab0 & ((0x01 << 3) - 1)) << 12) | ((G_ACMUX_##Ad0 & ((0x01 << 3) - 1)) << 9) | ((G_CCMUX_##b1 & ((0x01 << 4) - 1)) << 24) | ((G_ACMUX_##Aa1 & ((0x01 << 3) - 1)) << 21) | ((G_ACMUX_##Ac1 & ((0x01 << 3) - 1)) << 18) | ((G_ACMUX_##d1 & ((0x01 << 3) - 1)) << 6) | ((G_ACMUX_##Ab1 & ((0x01 << 3) - 1)) << 3) | ((G_ACMUX_##Ad1 & ((0x01 << 3) - 1))); }int main(int argc, char *argv[]) { unsigned int pkt[2]; SetCombine(pkt, TEXEL0, 0, PRIMITIVE, 0, // color combine mode 0 1, TEXEL0, PRIMITIVE, 0, // alpha combine mode 0 TEXEL0, 0, PRIMITIVE, 0, // color combine mode 1 1, TEXEL0, PRIMITIVE, 0); // alpha combine mode 1 printf("%08X%08Xn", pkt[0], pkt[1]); return 0;}
-
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
so it's not an instruction ordering problem either...that only leaves 1 problem. it's shading. you need to mux up an unlit combiner instruction. I have the doc for FC on my pc somewhere, I'll try to write you one right quick... EDIT: aight, here's what I came up with. FC 13 6C 26 FF DB 9F CF I can't guarantee it'll work, but the equation I used was color = (TEXEL0 - 0) * 1 + 0alpha = (1 - TEXEL0) * 1 + 0 the doc I posted is at http://glitchkill.proboards.com/index.cgi?board=ootmod&action=display&thread=5930 -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
try replacing the start of that with this E7 00 00 00 00 00 00 00 E3 00 10 01 00 00 00 00D7 00 00 02 07 D0 09 C4 FD 90 00 00 04 05 84 20F5 90 00 00 07 01 40 50 E6 00 00 00 00 00 00 00F3 00 00 00 07 0F F4 00 E7 00 00 00 00 00 00 00F5 80 04 00 00 01 40 50 F2 00 00 00 00 07 C0 7CFC 12 7E 03 FF FF FD F8 E2 00 00 1C C8 11 20 78D9 FF FF FF 00 0F 00 00 E7 00 00 00 00 00 00 00 -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
try changing or replacing the FC instruction with FC 12 7E 03 FF FF FD F8 it's probably a combiner issue -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
change or add the following instruction to the start of your display list: FA 00 00 00 FF FF FF FF -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
4.0.30319 RTMRel. I'm guessing I'm in need of MSVC# 2010 SP1... EDIT: Nope. I just finished installing 2010 SP1 and .NET 4.5.50709, still no textures. -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
nope, look at the pic. the texture itself doesn't show up in the texture viewer list on the right -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
I have an Intel HD2000 Sandy Bridge. But I don't think that's the problem because it was working for me before a long time ago. Can you try bundling it with the redistributable you're linking against? EDIT: yeah, it's not a graphics card issue -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
just tossed this together real quick in blender. face.png: dorkcube.mtl dorkcube.obj what I see when I import it what it should look like: pc specs: ---------------------- Intel N5050 Dell Inspiron 64-bit Intel Duo Pentium @ 2.10Ghz Operating System: Windows 7 64-bit RAM: 4gb + 16gb paging file Misc: ---------------------- MS .NET FW 1.1 + 4 Client Profile + 4 Extended + 4 Multi-Targeting Pack SQL Server 2008 R2 Management Object SQL Server Compact 3.5 SP2 ENU SQL Server Compact 3.5 SP2 x64 ENU SQL Server System CLR Types MSVC# 2010 Express - ENU MSVC++ redist 2005 (x64) + 2008 (x86/x64 9.0.3...) + 2010 (x86/x64 10.0.40219) MSVS 2010 ADO.NET Entity FW MSVS 2010 Express Preqreq. x64 MS XNA FW Redist -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
I usually just copy one of the FC instructions from one of link's display lists. if you don't, the combiner will mux the environment color which makes your model look ugly. I think the problem might be a missing .net runtime -
N64/Zelda hacking tools (DList conversion etc)
SoulofDeity replied to xdaniel's topic in Community Projects
I wish I could get model2n64 to work for me :/ it won't import textures. the only reason I'm not popping dlist ports out left and right is because I have to convert them with sharp ocarina, fix the combiner options, and reorder the instructions, and rescale everything. it's just too much of a hassle... -
have you tested to make sure that still works when there are persistent objects like epona or princess ruto? if so, and it still works, that's a pretty useful find
-
few more goods (player actor stuff) 80388B60 ovl_player_actor in ram800A1934 main entrypoint (only called once at start of game)800A19A0 called every time link walks into another map800A19C0 main loop80388B78 called when a cutscene starts (including spells)80391A9C called when the player uses a spell
-
Another option is my import script. other requirements: [*]blender 2.6 or higher [*]python 3 or higher video tutorial Installation Instructions: [*]Install blender and python [*]Open Blender, in the bottom left corner you should see a combobox with a cube in it. Click it and change it to User Prefs. Click the "Addons" tab at the top, then click the "Install from File..." button at the bottom. Select the import script, and enable it. [*]Click the combobox again and change back to 3D view, then hit Ctrl-U to save your user prefs. This is important, otherwise the script won't stay installed. For maps though, you'll need to put the scene file in the same folder as the map you're importing and rename it segment_02.zdata, otherwise all the textures will appear black.
-
I found a function that's only called at the start of the game and wrote a hook for it. I'm planning to use it to write a modloader .org 0x8000085CdmaTransfer:.org 0x03472000evInitModLoader_rom:.org 0x00000080evInitModLoader_size:.org 0x80000E6CinitModLoader_hook: addiu sp, sp, 0xFFF0 sw ra, 0x0000 (sp) sw a0, 0x0004 (sp) sw a1, 0x0008 (sp) sw a2, 0x000C (sp) li a0, evInitModLoader_rom li a1, evInitModLoader_ram jal dmaTransfer li a2, evInitModLoader_size j evInitModLoader_ram nop.org 0x80170000evInitModLoader_ram:; put your code here, you will need to adjust evInitModLoader_size lw ra, 0x0000 (sp) lw a0, 0x0004 (sp) lw a1, 0x0008 (sp) lw a2, 0x000C (sp) addiu sp, sp, 0xFFF0 lui v0, 0x0000 addiu v0, v0, 0x7430 sw ra, 0x001C (sp) lui t6, 0x0001 addiu t6, t6, 0xD390 lui a1, 0x8001 addiu a1, a1, 0xB140 subu a2, t6, v0 jal dmaTransfer or a0, v0, r0 lui t8, 0x8001 lw t8, 0xB144 (t8) lui t7, 0x0000 addiu t7, t7, 0x1060 beq t7, t8, l80000EBC lui a0, 0x8000 addiu a0, a0, 0x65D4 jal 0x800AF734 addiu a1, r0, 0x0345l80000EBC: lui a0, 0x8000 lui a1, 0x8000 addiu a1, a1, 0x7D58 addiu a0, a0, 0x7D40 jal 0x80004220 addiu a2, r0, 0x0020 j 0x80000ED4 nop the hook part overwrites the code at 0x00001A6C in the rom. the stub should be put at 0x03472000 in the rom
-
found these for Satoshi a little bit ago ; OoT MQ Debug Rom Offsets00C235B4 rrggbbaa sword slash start outer color00C235B8 rrggbbaa sword slash end outer color00C235BC rrggbbaa sword slash start inner color00C235C0 rrggbbaa sword slash end inner color; OoT 1.0 (U) Rom Offsets00BEFF7C rrggbbaa sword slash start outer color00BEFF80 rrggbbaa sword slash end outer color00BEFF84 rrggbbaa sword slash start inner color00BEFF88 rrggbbaa sword slash end inner color