Jump to content

CloudMax

Member
  • Posts

    184
  • Joined

  • Last visited

  • Days Won

    31

Everything posted by CloudMax

  1. Version 2.3 has now been released. You can use it online or download it at http://cloudmodding.com/app/texturepacker You can also download it here on the-gcn at https://www.the-gcn.com/files/file/69-cloudmaxs-n64-texture-packer/ Keep in mind that releases are delayed on the-gcn from now on. Reason for this is so that I can make necessary hotfixes to issues that may pop up right after a new version is released. Things hosted on my site can swiftly and quietly be updated to resolve the issues, but the same is not possible here. If no problems are detected within a day or two, I'll most likely upload it here. If a problem is found, I may decide to delay the release further, or wait until I release the next version. The N64 Texture Packer is a tool that I started working on quite recently. (It is written in javascript and will run in your browser) It was initially supposed to be a tool packed with my z64editor, it even runs on an updated, slightly modified, version of the javascript that handles all the texture importing/exporting of the editor among other things. The tool quickly evolved and became a standalone tool that supports any decompressed N64 ROM rather than being exclusive to OoT. Basically this tool will be a new way of creating and sharing texture packs, similar to that of a Rice's Video Plugin pack. There is however a few key differences, some good, some bad. First of all, this tool is designed to be hardware compatible. Rather than relying on an emulator plugin, the tool will import the texture pack directly into the ROM. This poses a problem, how will the tool know where to import the textures? Well, it doesn't, so you have to tell it where to import the textures by providing the address it is located at. So unlike a Rice's Video Plugin texture pack where it dumps the textures for you, and you just modify the texture and be done with it, with this tool you'd have to look up the location of each texture. The easiest way to do this (that I am aware of) would be to dump the textures using Rice's Video Plugin, then convert the textures to texture data using for example SoD's converters and search for the data in the ROM. Now for the actual format that the texture pack will use. I've reworked it several times, and I'm happy with the current format. The texture pack is a .zip archive. It will contain a directory named "pack", which is where the actual texture pack is located. Anything can be placed outside the pack directory, such as an instruction text file, the tool, etc. Within the "pack" directory you'll find a set of folders (or just one folder). Each folder represent an offset within the ROM you're making the pack for. The folder name decides the offset, and it can be set up in two different ways. The format is [type]_[hex address]_[description] Type A: the textures within the folder will be imported relative to the specified hex address. Type P: the textures within the folder will be imported relative to the 32bit value at the specified hex address. The description is optional and can be used to describe what the folder points toward, etc. Examples: texture_pack.zip/pack/A_007D6000/ and texture_pack.zip/pack/P_00012FF0_icon_item_24_static/ Textures located in the first folder would be imported into the ROM relative to address 0x007D6000 Textures located in the 2nd folder would be imported into the ROM relative to the 32bit value located at 0x00012FF0 in the ROM Now, in the OoT MQ Debug ROM, 0x007D600 is the start offset of icon_item_24_static. And 0x00012FF0 is the dma table entry which points to 0x007D6000. So both folders point to the same location. Since the 2nd folder uses the dma table, it will point correctly even if files have been shortened or extended before it, as it uses the dma table rather than a static address. This will prove useful if you want your pack to be compatible with ROM Hacks, etc., where a static address may point incorrectly. And now the textures. The textures are .png files located within the folders mentioned above, and the names are formated [hex address]_[texture type]_[description].png The hex address is the address the texture should be imported to, relative to the offset of the folder it is placed in. The texture type tells the tool what format the texture should be imported in. The available formats are i4, ia4, i8, ia8, rgba32 and rgb5a1. And again, the description is optional. It can be used to describe what the texture is used for, etc. Example: texture_pack.zip/pack/P_00012FF0_icon_item_24_static/00000900_rgba32_fire_medallion.png Following the previous example, this would import the image as an rgba32 texture at 0x00000900 relative to 0x007D6000, which is 0x007D6900. And if you were to remove the descriptions in the names, the path would be texture_pack.zip/pack/P_00012FF0/00000900_rgba32.png The length of the hex addresses must not be 8 characters, and folder/file names are case insensitive. I only type it that way for consistency. This may seem like a lot to take in at first, but it really isn't that much at all. It is a very simple format that anyone should be able to grasp almost instantly. NOTE: Due to browser limitations, textures will be slightly modified when imported into the ROM. This should not be noticeable at all, and is something that happens to all images that are loaded into a web browser. You will however notice that when you import a clean texture dump into the ROM, the hex won't be the same due to minor color differences.
  2. CloudMax

    Decompressing ROMs?

    Ah, that's right. Though, I didn't have to byteswap mine before using zdec (Didn't have a tool for that until a few days ago when I downloaded GZRT). I guess I just happened to download one that already was byte-swapped. I have such a hard time finding clean ROMs these days, especially OoT Debug ROM, where I don't even own a perfectly clean one anymore. They always have the room fixes. So by default .n64 SHOULD be little-endian, and .z64 byte-swapped? I didn't actually know that. I guess you learn something new every day.
  3. CloudMax

    Decompressing ROMs?

    You can most likely just change the extension manually on the ROM file if it isn't .z64
  4. Yeah, the thing about it being black behind link is something I found out about after I created the menu texture. Apparantly the generated image doesn't have alpha, it's black. The original menu fades into the black background to make it look good, which is what I probably should do for my menu, when I get around to finishing it. (I believe I lose the photoshop file though...) So it seems like everything is working properly, which is great! I'll try to get the Preview build out tomorrow (Especially since I most likely won't have any time to work on it on new years eve), I just need to make sure that everything saves & loads properly, and fix the button color stuff for the Song Notes. At least I think that's everything. Edit: Okay, looked up the 3rd location for the song note button colors and it now set all 3 properly. I believe that everything saves properly as well, and I fixed a rounding issue which caused the editor to say that all alpha colors were changed every time you saved in the editor. I am currently removing old files and such which is no longer used by the editor. The code is a bit of a mess, it has a lot of old leftover code that is either just ignored (Majora's Mask), or commented out, etc. But this is just a preview build after all. I'll most likely clean it up a bit for the actual release. Here's a quick look at the current size of the editor: 450kb for scripts. (140kb of it being the stuff that I've written by hand, the rest is 3rd party stuff like jquery, less, etc.) 95kb for stylesheets. (the less sheet is included in addition to the css file, which is about 44kb) 22kb for the html document. Beta 2.2.0 was about 970kb. So all in all, the size has been reduced by about 400kb, this is excluding the File Select stuff ofc. (the skybox previews for it take up ~450kb) I'll do a bunch of testing the next few hours. If everything goes well, the editor will be released today. Edit 2: Beta 3.0.0 Preview has been released, you can try it out here, or download it here
  5. Been working on the editor for about 6 hours today and found a lot of bugs everywhere, and a lot of leftover text which was no longer true for 3.0, but I've corrected all of it now. And I finally managed to fix the massive FPS issue caused by the Texture Lists. Basically the editor has a function in the global loop to determine which elements should be visible depending on an attribute. Like this: "data-req='settings,texturefile/icon_item_static'", this means that for the element to be visible, $editor.settings.texturefile must be equal to "icon_item_static". It would cause a lot of lag if I were to put this on every single texture available in the editor, it would have to loop thru hundreds of textures every frame.. So what I were supposed to do was to simply place the textures of each file within a container, and just put the data-req on the container.. And here's the stupid part.. I forgot to generate these containers outside of the loop that creates the texture list entries, so every single texture had a container. So yeah, I just had to move a single line of code 2 rows up and the FPS was increased from 12fps to 26fps. There were also a lot of bugs in the loading feature, if you loaded files in specific orders the editor would crash (you had to provide the dmatable file first), and at some point I even broke the ability to load the entire ROM file. The only way to use the editor was to either provide all files one by one starting with the dmatable file, or use the autoload feature. This is now fixed. You can provide an entire ROM file, or provide the files separately (in whatever order you want), or use the autoload feature. Some things didn't have a description applied to them, so the changes weren't visible in the the generated text file when saving. There were also some minor padding issues that could cause things to not align properly in the text file. And now the "Include files that haven't been edited" option actually work. For some reason I added the option like two months ago, but it didn't do anything. Made a few changes to the Selected Texture box. Now you can drop an image anywhere in this box to import a texture, and not just on the texture preview itself. When importing a texture, it is now properly updated in both the texture list, and in the selected texture box, instead of only the one you used to actually import the texture. I've temporarily removed the File Select Menu. And just like I had hoped, I only had to comment out "fileselectInit();" and everything related to the File Select goes away. The Save Panel was not saved. Ironic, huh? It only saved changes done to the first 4 panels (remaining code from when the editor only had 4 panels for both MM and OoT), so the background color was never saved for it. I had removed an ASM hack which was required in order for the editor to be able to change the Quest Status R Button Direction ID by mistake and it has now been added back. The Note Button colors for the Quest Status menu had to be set at 3 locations, not one. One for when the notes are displayed normally, and one for when you're listening to the song. And one for when you've played a note. I wiil make it so that the color you set in the editor is applied to all of them. (I have not looked up the 3rd location yet) I may change this for the 3.0 release, We'll see. The editor will be released either tommorow or on new years eve. HeavyZ, I'll send you a test ROM very soon. The CRC has not been updated, so hopefully you have a tool for that. I've replaced various Interface textures, and the textures for all menus except the Map, I've changed the A button color for the songs in the quest status menu, Some objects has been moved a pixel or two, the default cursor position has been changed for when you move from the Z and R buttons in the quest status menu, and you can go Down/Up from the Light/Water Medallions. These changes should cover moving objects, all the available ASM hacks, changing all kind of colors, and replacing textures. So if the ROM I provide you works (with a fixed CRC), then the editor should be compatible with hardware.
  6. I think I recall them recieveing Mario Statues in the modes to prevent crashes. At least I think that's what they said in a post a while ago when they explained some stuff about the clone engine. I am not sure about where the highscores are saved. Either over the character they're cloned from, or Mario. Maybe it's not saved at all? But yeah, Project M is solely for Multiplayer, but they have tried to keep at least Classic Mode compatible.
  7. Sounds like a plan. I'll put together a ROM that uses pretty much every feature that the editor has to offer sometime this weekend, if it doesn't work for you, I'll put together a few individual ROMs that uses different features. I assume I just have to give you the Debug ROM as is, and not compress it or anything? Because I have no experiece with such things. hardware compatibility is one of the main goals of my editor. Which is why I am also considering adding support for NTSC-U 1.0 at some point, since that may be the prefered version for some people who make mods for console.
  8. I will not be able to finish up 3.0 of my editor this year, so I'm currently aiming to make a release preview of it by the end of the year. A few features will be temporarily cut from it as they aren't done, but all features that are functional will be preset, even if they aren't complete. At the moment I believe the only feature that will be cut is the File Select. Reason is because I haven't located all the textures for it yet (haven't had the time), and I haven't added saving/loading for it yet (I have written down most of the addresses in the RAM, haven't had the time to convert them to ROM, etc.) The texture importer is not done either, but it is one of the key features of 3.0, and I really want it to be present, so I'll be working on it in the next few days in order to finish it up before next year. Also, this: These features should be present in 3.0, but I haven't had the time to look into the ASM at all, so I won't be able to add it in the release preview. But do not worry, I will do my best to release the full 3.0 sometime in January. keep in mind that Majora's Mask support still is going to be a 3.1 feature. This delay does not mean that I will push any additional features for 3.0, unless it is any bugfixes and such which I have yet to find. Edit: I may include the File Select Feature with the release preview, but in a disabled state (You won't be able to save/load changes to/from the ROM itself). Which means that all the code will be present, but you'll have to enable it yourself in a downloaded copy by changing a line of code. This is so that those who are interested can take a look at it and get a good picture of what they can expect from it. I haven't fully decided if I will do this though, since the File Select feature takes up about half the size of the editor since the textures, as well as skybox previews are included with it. I may even release those file as a separate download, so that you can put them in the editor folder to enable the file select. Time will tell.
  9. I finally got it to work yesterday. It appears that it was their servers causing the issues. The first two times I downloaded, it went very, very slow. ~45min to download. 3rd time everything went smooth. I used the same 2GB SD Card as always for it, so that didn't cause me any issues either I love all the small changes that they've made to improve the game. And not just the actual gameplay, even small things like the costumes. They show which costume number it is, etc. I would never have thought to include such a thing in the costume picture. They're really doing a great job in improving brawl. I did not play it that much though. Yesterday Hearthstone (a game I am playing a lot) released a new patch with an all new ladder and ranking system, etc. so I spent all day playing that instead.
  10. Hyyypeeeeeee. Didn't expect to see a thread about it here, even though this is a modding size. I have to agree that this is the best damn smash bros. game out there. It beats Melee in my eyes. A lot of people refuse to ever accept something as better than Melee, and I'm okey with that, but to me, this beats it any day. Edit: The first 2 zip files I've downloaded so far has been corrupt. Very annoying considering the size of it...
  11. God. This sucks. I myself have never even attempted to monetize a single video, ever, even though I have like 150 of them and 500k views total. But I know that this WILL affect a lot of people in many ways. I can imagine youtubers starting to upload their videos several days before they're supposed to come out and have them hidden so that the videos are accepted by the time you're releasing it on your channel. The big issue with this is that youtube will be several days behind. You will see stuff several days after it was actually done, simply because people don't want to release a video before they can make money off of it. I should consider backing up all my videos at some point (having to buy another hdd... yay...). I only have backups of the few ALBW videos I've uploaded recently, but that's because I haven't removed them from the desktop yet...
  12. Okay, I am now officially back to coding the editor after a break from it to play and search for glitches in A Link Between Worlds. Now, I were extremelly dumb and didn't write down what I were currently coding and such, so I no idea what I were in the middle off. All I remember is that the moment I received the game, I saved the files and closed down Notepad++, not to open it again until now. So I still have a general idea of where I was since it saved the scrollbar position in all files, lol. Anyway, I want to keep the "promise" I made of releasing the next build this year. I realise that it will be much more difficult at this point, I did not expect to take such a long break, but it is still doable. So the next thing I'll be doing is trying out the editor myself quite a bit, to see if there's anything that doesn't function properly as a result of me just leaving things as is. After that I'll be finishing up the generated text document to include textures that've been changed. I'll remove redundant files (some files that are required turned out to be unnecessary). After that I need to fix saving/loading of File Select Data, it currently uses preset values in the editor, and doesn't save to the files. After that, the build should be stable. I can't think of anything else that is in the editor that doesn't function properly. However, I will most likely not release the build at that point, as I still want to add a few features that I promised a while back, such as L/Z & R Button coordinates in the pause menus. Things like that will most likely be the most timeconsuming, as I still haven't looked up several addresses, and many things will require some minor ASM changes. Edit: Turns out that I hadn't properly ported over the menu background tile system to work with the textures directly from the files. It only took me several hours to rewrite the code to work with the new texture system, so that's done now. I am also looking into browser compatibility at the moment. IE11 does not seem to work. I am trying to resolve it, but the browser just refuses. Basically it's the autload feature which is causing this problem. I convert things back and forth to base64 strings, and <IE10 does not have a native function for that, unlike all other browsers. However, for some reason it doesn't even work on IE10 & IE11. For some reason the native function just disappear... Edit2: It appears that I had a shim (https://github.com/MrSwitch/dropfile) that interfered with other scripts applied. It was used to add backwards compatibility for file dropping for <IE10 browsers. Simply removing it solved the problem. I am no longer supporting <IE10 browsers anyway. Supporting IE8 caused me a lot of trouble and headache, and I had to write a lot of exclusive IE code, and it just wasn't worth it in the end. If someone wants to use the editor, they should at least have the courtesy to download a modern browser that support it. IE8 would probably have terrible performance issues anyway. Edit3: The changelog that is generated when saving now list all the textures that've been replaced as well. (Even if you replace the texture with one that is identical!) Here's what the generated file looks like at the moment: As you can see, it displays the changes differently for textures. It wouldn't exactly be a good idea to display every pixel that was changed for all textures, so instead it displays which texture you changed, and what format & size it has. Edit4: As previously requested, the editor will now ask you if you want to leave the page to prevent you from leaving by mistake. (by navigating to a new page, refreshing, closing tab, etc.) However, I am a person who have always been against ads, alerts, etc., so this feature is disabled by default so that people who simply just want to leave the page won't get a bad experience by having alerts pop up when they try to leave. As you can see in the picture, there is now a checkbox which says "Confirm when closing Editor" next to it. The confirmation alert will only appear when that box has been checked. This should make everyone happy. I added this feature right after I closed the editor by mistake by dragging a picture onto a zone that wasn't attached to file loading, which loaded the picture over the tab. I don't want to experience that again. I had spent a lot of time replacing a bunch of textures. I also improved the dropzone so that this issue shouldn't even happen in the first place from now on. Edit5: I've looked into the performance of the editor. And it is all over the place. Chrome and Opera has the best FPS by far when no tab is open for the right panel (object list or texture list that is), and my computer isn't running lots of other resource-heavy programs. Internet Explorer 11 and Firefox on the other hand seems to perform differently. They have a much lower FPS than Chrome & Opera, but it doesn't seem to be affected by me having photoshop and other applications running in the background, having a tab opened in the right panel doesn't seem to make much of a difference either. So if you don't have a tab open, and not many applications running, Chrome and Opera perform great. If you on the other hand do have many applications running, and a tab open, IE11 and Firefox won't be affected, so the lower FPS that they have by default will be higher than that of Chrome and Opera. Because of the huge performance impact that is caused by having a tab open in chrome and opera, I've added a Close button so that you can close the currently opened tab on both side panels, so that if you just want to work with the workspace you can do so at a good FPS. Here's a picture of the new Close Buttons:
  13. It's an interesting idea. At the very least, it'd be possible to gain access to the entire storywithout having to buy a PSP and such to get some of the titles. I myself am a big fan, have played most KH games (can't really recall exactly which ones I haven't played, but the ones on gameboy and psp are the only ones I haven't played I believe?) An yeah, for some reason, Square Enix seems to make titles differently when they're Nintendo exclusives, I don't really know why, but I just get that feeling. Like with the crystal chronicles of FF for example. Some may not like it, but I played the first one (I believe it was anyway?) on the gamecube many, many years ago, and I thought it was a great title. And they're still making good crystal chronicle titles which are exclusive to Nintendo. But then look at more recent titles like FF XIII, which aren't exclusives, I feel like they've put more time on graphics than anything else, the game wasn't fun at all. FF XIII-2 was playable, I did 100% it, but still not really that fun. Ohh, and not to mention Bravely Default. That title looks to be simply amazing, I believe it was very popular in Japan when it was released there, and I've looked forward to it for a looong time. I believe they're actually releasing the updated version of the game TODAY in japan, the one which will be released in the rest of the world shortly after. I will most likely not get the game on release though, since I'm running low on money. I've always enjoyed their Nintendo Exclusives the most, wouldn't surprise me if KH had ended up better being an exclusive.
  14. Yeah, I guess you could say that SAO is kind of difference in the way that each Arc changes the series a whole lot. You'd take your time and get used to and enjoy the way it is at first, then it transitions over to the next arc, which is completely different. If they were to make another season, and it were to follow the Light Novels, the next one would take place in Gun Gale Online, which is an MMOFPS. The setting would be very, very different. But I guess that's the nature of the SAO series. I'd assume that the reason they didn't go for a new season right away is because of the difference it'd be, and how it would cause confusion to the viewers. They'd most likely make it a separate anime series if they were to do it at all tbh. I doubt they'll make another season though. And damn, now I am very disappointed in Blood Lad. It had no proper ending at all. It ended pretty much when they had established the plot and you knew where the anime's going. Not to mention that there's no plans for a season 2 because of the lack of content in the manga (that's the result I got after doing some searching anyway) So yeah, I'd not recommend it. ____________ Edit: Decide to watch thru another series as I needed a days break from playing A Link Between Worlds. This time I watched K (aka K-Project). It was an interesting series. Not the kind of thing that I usually watch, but it was good. I found out that there's going to be a sequel for it in the form of a movie in 2014, and it will be an interesting watch. My favorite part about the entire series must've been the Music. I liked it a lot. They overused the songs a lot, hearing the same thing multiple times in one episode, every episode. But it was so good, I didn't really care.
  15. So, for anyone, ever. You should TOTALLY watch Kuroko no Basket. Like, seriously, the last aired episode of season 2 was so amazing, I couldn't resist making a post about it. I've been following the series since season 1 first started airing, at first I was sceptic. I'm not into sports at all, and it's the first sports anime that I'm watching, but damn, it's just amazing in every way. Easily one of my all time favorite series. I also watched thru all the Hunter X Hunter (2011) episodes about a week ago. An amazing series, can't believe that I didn't watch it earlier. Another anime that'd I'd put in my top 10 list. (I've seen about 50 or 60 series I believe) I'm also watching Blood Lad. Which I guess is... different to me. I've not seen a vampire anime before, because I've avoided anime TV series in general, I've always thought it's just dumb. The series is fine and all, I will watch it till the end, but not one of my favorites. A decent anime nonetheless. And lastly, I'm watching Strike the Blood (yeah, funny thing huh. I happened to watch two vampire series at once, after having never watched one for years) and Machine-Doll wa Kizutsukanai, two anime series of this season. They're both great, I enjoy them a lot. I'd really recommend them to anyone who is looking out for new anime series this season. They aren't the "epic adventure" kind of thing like HxH or SAO though. But they have a proper, progressing story to go along with them, which really makes me look forward to what will happen in the next episode.
  16. This is basically how OoT would be with the ALBW dungeon layout: Imagine having to do Deku Tree first. After that you get to decide if you want to do Dodongo's Cavern or Jabu Jabu. (at this point you also get access to pretty much the entire child overworld) When you become adult, you can go to all dungeons right away, except for for one, which would first require you to do Forest Temple first. (After Forest Temple, you'd get access to the entire adult overworld) When you've done all dungeons, you unlock Ganon's Castle. That's pretty much the exact layout in ALBW. It is VERY open. you choose the order of the 2nd and 3rd. However, the difficulty level is not equal for all dungeons, not at all. There's one dungeon that is considered much harder than the rest, and a lot of people prefer doing it last so that they have better equipment and more health. (I guess kinda like how many wouldn't want to do Bongo Bongo with 6 hearts in OoT?) And since you can get to the dungeons in any order, you can obtain all the items (except for 1, which would require you to beat Forest Temple first if you follow my example above) when you've obtained either Silver Scale OR Goron's Bracelet. The dungeons would contain equipment/gear rather than items. This is a lovely design. And if I ever were to make a mod, I'd do everything I can to keep it as open as possible, just like with ALBW.
  17. Same here. (except I 100%ed Hero Mode several days ago) I raced Mzxrules on SpeedRunsLive just the other day and it really was a blast. I most likely wont get tired of this game for quite some time. Every 3ds owner should get this game, because you most likely won't regret it.
  18. Thanks! I personally have always had a thing for User Interface programming, it's always been the favorite part to me. The interface is what that users will see regularly and improves the overall experience. And the released version should be able to save the .zdata file and be added back in a ROM properly. Unless there's some error preventing you from saving that I'm not aware of. I should note that the saving functionality of the current release isn't exactly great, it just output a new ovl_kaleido_scope file. The system has been completely rewritten now as the next release will use multiple files. The new one will instead generate a zip file containing a txt document containing all the changes that were made, offsets of the files and changes, etc. to make it easier for the user to add the files back into a ROM. I realised that I haven't really posted any updates on my progress around here, only in the shoutbox and speedrunslive #zeldahacking irc channel. So basically the editor now load all the textures from the provided files instead of being part of the editor itself. It is also possible to replace the textures. Here's a preview of the texture viewer/replacer: As you can see, you're able to view the textures of the various files that you've loaded into the editor. The way you import textures is very simple. All you have to do is drag and drop an image onto the texture that you want to replace. The only requirement is that the image has proper dimensions. You do not need to make the texture greyscale and convert them to the proper format, the editor will convert the image to the proper format for you. As seen in the picture above, I imported a 32x32 hylian shield over the Fishing Rod and a 48x48 hylian shield over the Heart Piece 3/4 texture. However, both were fully colored when imported, but the editor made the second one into an ia4 texture automatically. All objects in the editor that used the texture were updated to use the newly imported texture. And here's my first texture replacement test result ingame (textures were all replaced using the editor. Took me about 1 minute to replace, save, and add back to a ROM) I will most likely be a little less active in the coming days because of A Link Between Worlds, but I should get back to the editor and make some real progress soon enough. At first I doubted that I'd be able to make another release in 2013, but now I'm almost certain that I will be able to pull it off.
  19. So, I am currently in the process of locating all kind of textures for the OoT Debug ROM for the next release of my editor, since it'll load all the data directly from the game files this time around. I figured that some people may want to know where a bunch of textures are located, their sizes and format, etc. so that they can replace them themselves. I will update this thread every now and then with more textures. I'll also provide various textures to make things easier. (I wrote the code that extract them, so all color channels should be correctly set up) The documentation is formated as a javascript object since this is taken from the source of my editor. The offset is relative to the file in question. $textures = { "icon_item_static":{ /* 0x00000 to 0x5A000 is the 90 item icons. size:32x32 format: rgba32 (0x1000b per texture) Added by a loop below. */ 0x5A000:{size:[48,48],format:"ia4",name:"Heart Piece 1/4"}, 0x5A900:{size:[48,48],format:"ia4",name:"Heart Piece 2/4"}, 0x5B200:{size:[48,48],format:"ia4",name:"Heart Piece 3/4"}, 0x875C0:{size:[24,16],format:"ia4",name:"A Button Symbol"}, 0x878C0:{size:[48,16],format:"ia4",name:"C Button Symbols"}, 0x87BC0:{size:[72,24],format:"ia4",name:"Title Panel Left"}, 0x88280:{size:[72,24],format:"ia4",name:"Title Panel Right"}, 0x88940:{size:[24,32],format:"ia4",name:"L Button"}, 0x88C40:{size:[24,32],format:"ia4",name:"R Button"}, 0x89440:{size:[16,24],format:"ia4",name:"Song Note"}, 0x5C3C0:{size:[80,2208],format:"ia4",name:"Menu Background Tiles"} }, "icon_item_24_static":{ //COMPLETE 0x0000:{size:[24,24],format:"rgba32",name:"Forest Medallion"}, 0x0900:{size:[24,24],format:"rgba32",name:"Fire Medallion"}, 0x1200:{size:[24,24],format:"rgba32",name:"Water Medallion"}, 0x1B00:{size:[24,24],format:"rgba32",name:"Spirit Medallion"}, 0x2400:{size:[24,24],format:"rgba32",name:"Shadow Medallion"}, 0x2D00:{size:[24,24],format:"rgba32",name:"Light Medallion"}, 0x3600:{size:[24,24],format:"rgba32",name:"Kokiri's Emerald"}, 0x3F00:{size:[24,24],format:"rgba32",name:"Goron's Ruby"}, 0x4800:{size:[24,24],format:"rgba32",name:"Zora's Sapphire"}, 0x5100:{size:[24,24],format:"rgba32",name:"Stone of Agony"}, 0x5A00:{size:[24,24],format:"rgba32",name:"Gerudo's Card"}, 0x6300:{size:[24,24],format:"rgba32",name:"Gold Skulltula"}, 0x6C00:{size:[24,24],format:"rgba32",name:"Heart Container"}, 0x7500:{size:[24,24],format:"rgba32",name:"Piece of Heart"}, 0x7E00:{size:[24,24],format:"rgba32",name:"Boss Key"}, 0x8700:{size:[24,24],format:"rgba32",name:"Compass"}, 0x9000:{size:[24,24],format:"rgba32",name:"Dungeon Map"}, 0x9900:{size:[24,24],format:"rgba32",name:"Small Key"}, 0xA200:{size:[24,24],format:"rgba32",name:"Small Magic Jar"}, 0xAB00:{size:[24,24],format:"rgba32",name:"Big Magic Jar"} }, "icon_item_field_static":{ }, "icon_item_dungeon_static":{ 0x000:{size:[24,16],format:"ia4",name:"Blank"}, 0x180:{size:[24,16],format:"ia4",name:"1F Button"}, 0x300:{size:[24,16],format:"ia4",name:"2F Button"}, 0x480:{size:[24,16],format:"ia4",name:"3F Button"}, 0x600:{size:[24,16],format:"ia4",name:"4F Button"}, 0x780:{size:[24,16],format:"ia4",name:"5F Button"}, 0x900:{size:[24,16],format:"ia4",name:"6F Button"}, 0xA80:{size:[24,16],format:"ia4",name:"7F Button"}, 0xC00:{size:[24,16],format:"ia4",name:"8F Button"}, 0xD80:{size:[24,16],format:"ia4",name:"B1 Button"}, 0xF00:{size:[24,16],format:"ia4",name:"B2 Button"}, 0x1080:{size:[24,16],format:"ia4",name:"B3 Button"}, 0x1200:{size:[24,16],format:"ia4",name:"B4 Button"}, 0x1380:{size:[24,16],format:"ia4",name:"B5 Button"}, 0x1500:{size:[24,16],format:"ia4",name:"B6 Button"}, 0x1680:{size:[24,16],format:"ia4",name:"B7 Button"}, 0x1800:{size:[24,16],format:"ia4",name:"B8 Button"} }, "icon_item_nes_static":{ }, "nes_font_static":{//COMPLETE /* The entire file contains 140 characters. size16x16 format: i4 (0x80b per texture) Added by a loop below. */ }, "title_static":{ 0x00180:{size:[16,16],format:"ia4",name:"Forest Medallion"}, 0x00280:{size:[16,16],format:"ia4",name:"Fire Medallion"}, 0x00380:{size:[16,16],format:"ia4",name:"Water Medallion"}, 0x00480:{size:[16,16],format:"ia4",name:"Spirit Medallion"}, 0x00580:{size:[16,16],format:"ia4",name:"Shadow Medallion"}, 0x00680:{size:[16,16],format:"ia4",name:"Light Medallion"}, 0x1C880:{size:[16,16],format:"rgba32",name:"Kokiri's Emerald"}, 0x1CC80:{size:[16,16],format:"rgba32",name:"Goron's Ruby"}, 0x1D080:{size:[16,16],format:"rgba32",name:"Zora's Sapphire"}, 0x00780:{size:[64,32],format:"ia8",name:"File Select Background Tile 0,0"}, 0x01780:{size:[64,32],format:"ia8",name:"File Select Background Tile 1,0"}, 0x02780:{size:[64,32],format:"ia8",name:"File Select Background Tile 2,0"}, 0x03780:{size:[48,32],format:"ia8",name:"File Select Background Tile 3,0"}, 0x04380:{size:[64,32],format:"ia8",name:"File Select Background Tile 0,1"}, 0x05380:{size:[64,32],format:"ia8",name:"File Select Background Tile 1,1"}, 0x06380:{size:[64,32],format:"ia8",name:"File Select Background Tile 2,1"}, 0x07380:{size:[48,32],format:"ia8",name:"File Select Background Tile 3,1"}, 0x07F80:{size:[64,32],format:"ia8",name:"File Select Background Tile 0,2"}, 0x08F80:{size:[64,32],format:"ia8",name:"File Select Background Tile 1,2"}, 0x09F80:{size:[64,32],format:"ia8",name:"File Select Background Tile 2,2"}, 0x0AF80:{size:[48,32],format:"ia8",name:"File Select Background Tile 3,2"}, 0x0BB80:{size:[64,32],format:"ia8",name:"File Select Background Tile 0,3"}, 0x0CB80:{size:[64,32],format:"ia8",name:"File Select Background Tile 1,3"}, 0x0DB80:{size:[64,32],format:"ia8",name:"File Select Background Tile 2,3"}, 0x0EB80:{size:[48,32],format:"ia8",name:"File Select Background Tile 3,3"}, 0x0F780:{size:[64,32],format:"ia8",name:"File Select Background Tile 0,4"}, 0x10780:{size:[64,32],format:"ia8",name:"File Select Background Tile 1,4"}, 0x11780:{size:[64,32],format:"ia8",name:"File Select Background Tile 2,4"}, 0x12780:{size:[48,32],format:"ia8",name:"File Select Background Tile 3,4"}, 0x15600:{size:[108,16],format:"ia8",name:"File Name Background"}, 0x1B680:{size:[72,24],format:"i8",name:"Big Button Highlight"}, 0x1BF80:{size:[56,24],format:"i8",name:"Medium Button Highlight"}, 0x1C4C0:{size:[40,24],format:"i8",name:"Small Button Highlight"}, 0x35A00:{size:[64,16],format:"ia8",name:"Copy Button"}, 0x36200:{size:[64,16],format:"ia8",name:"Kopieren Button"}, 0x36A00:{size:[64,16],format:"ia8",name:"Copier Button"}, 0x37200:{size:[64,16],format:"ia8",name:"File 1 Button"}, 0x37A00:{size:[64,16],format:"ia8",name:"File 2 Button"}, 0x38200:{size:[64,16],format:"ia8",name:"File 3 Button"}, 0x38A00:{size:[64,16],format:"ia8",name:"Datei 1 Button"}, 0x39200:{size:[64,16],format:"ia8",name:"Datei 2 Button"}, 0x39A00:{size:[64,16],format:"ia8",name:"Datei 3 Button"}, 0x3A200:{size:[64,16],format:"ia8",name:"Fichier 1 Button"}, 0x3AA00:{size:[64,16],format:"ia8",name:"Fichier 2 Button"}, 0x3B200:{size:[64,16],format:"ia8",name:"Fichier 3 Button"}, 0x3BA00:{size:[64,16],format:"ia8",name:"Yes Button"}, 0x3C200:{size:[64,16],format:"ia8",name:"Ja Button"}, 0x3CA00:{size:[64,16],format:"ia8",name:"Oui Button"}, 0x3D200:{size:[64,16],format:"ia8",name:"Erase Button"}, 0x3DA00:{size:[64,16],format:"ia8",name:"Löschen Button"}, 0x3E200:{size:[64,16],format:"ia8",name:"Effacer Button"}, 0x3EA00:{size:[64,16],format:"ia8",name:"Quit Button"}, 0x3F200:{size:[64,16],format:"ia8",name:"Zurück Button"}, 0x3FA00:{size:[64,16],format:"ia8",name:"Retour Button"}, 0x45E00:{size:[64,16],format:"ia8",name:"Options Button"}, 0x46600:{size:[64,16],format:"ia8",name:"Optionen Button"}, 0x16380:{size:[36,56],format:"ia8",name:"File Select File Background Tile 1"}, 0x17340:{size:[36,56],format:"ia8",name:"File Select File Background Tile 2"}, 0x18300:{size:[36,56],format:"ia8",name:"File Select File Background Tile 3"}, 0x192C0:{size:[36,56],format:"ia8",name:"File Select File Background Tile 4"}, 0x1A280:{size:[24,56],format:"ia8",name:"File Select File Background Tile 5"} }, "parameter_static":{ 0x0000:{size:[16,16],format:"ia4",name:"0/4 Heart"}, 0x0100:{size:[16,16],format:"ia4",name:"1/4 Heart"}, 0x0200:{size:[16,16],format:"ia4",name:"2/4 Heart"}, 0x0300:{size:[16,16],format:"ia4",name:"3/4 Heart"}, 0x0400:{size:[16,16],format:"ia4",name:"4/4 Heart"}, 0x0500:{size:[16,16],format:"ia4",name:"0/4 Heart (Double Defense)"}, 0x0600:{size:[16,16],format:"ia4",name:"1/4 Heart (Double Defense)"}, 0x0700:{size:[16,16],format:"ia4",name:"2/4 Heart (Double Defense)"}, 0x0800:{size:[16,16],format:"ia4",name:"3/4 Heart (Double Defense)"}, 0x0900:{size:[16,16],format:"ia4",name:"4/4 Heart (Double Defense)"}, 0x0A00:{size:[32,32],format:"ia4",name:"Action Button"}, 0x0E00:{size:[32,32],format:"ia4",name:"Equipped Item Border"}, 0x1200:{size:[32,32],format:"ia4",name:"Empty C-Left Button Arrow"}, 0x1600:{size:[32,32],format:"ia4",name:"Empty C-Down Button Arrow"}, 0x1A00:{size:[32,32],format:"ia4",name:"Empty C-Right Button Arrow"}, 0x1E00:{size:[16,16],format:"ia4",name:"Small Key"}, 0x1F00:{size:[16,16],format:"ia4",name:"Rupee"}, 0x2000:{size:[16,16],format:"ia4",name:"Clock"}, 0x2100:{size:[16,16],format:"rgba32",name:"Carrot"}, 0x2500:{size:[8,8],format:"rgb5a1",name:"Minimap Dungeon Entrance"}, 0x2580:{size:[8,8],format:"rgb5a1",name:"Minimap Chest"}, //0x2680 to 0x2900 (0x280 bytes) are unknown 0x2900:{size:[8,8],format:"ia4",name:"Minimap Boss Skull"}, 0x2940:{size:[16,16],format:"ia4",name:"Ocarina A Button"}, 0x2A40:{size:[16,16],format:"ia4",name:"Ocarina C-Down Button"}, 0x2B40:{size:[16,16],format:"ia4",name:"Ocarina C-Right Button"}, 0x2C40:{size:[16,16],format:"ia4",name:"Ocarina C-Left Button"}, 0x2D40:{size:[16,16],format:"ia4",name:"Ocarina C-Up Button"}, 0x2E40:{size:[16,32],format:"i4",name:"Ocarina Clef"}, //0x2F40 to 0x3040 (0x100 bytes) are unknown 0x3040:{size:[8,16],format:"i8",name:"Counter Digit 0"}, 0x30C0:{size:[8,16],format:"i8",name:"Counter Digit 1"}, 0x3140:{size:[8,16],format:"i8",name:"Counter Digit 2"}, 0x31C0:{size:[8,16],format:"i8",name:"Counter Digit 3"}, 0x3240:{size:[8,16],format:"i8",name:"Counter Digit 4"}, 0x32C0:{size:[8,16],format:"i8",name:"Counter Digit 5"}, 0x3340:{size:[8,16],format:"i8",name:"Counter Digit 6"}, 0x33C0:{size:[8,16],format:"i8",name:"Counter Digit 7"}, 0x3440:{size:[8,16],format:"i8",name:"Counter Digit 8"}, 0x34C0:{size:[8,16],format:"i8",name:"Counter Digit 9"}, 0x3540:{size:[8,16],format:"i8",name:"Counter Colon"}, 0x35C0:{size:[8,8],format:"ia4",name:"Item Amount Digit 0"}, 0x3600:{size:[8,8],format:"ia4",name:"Item Amount Digit 1"}, 0x3640:{size:[8,8],format:"ia4",name:"Item Amount Digit 2"}, 0x3680:{size:[8,8],format:"ia4",name:"Item Amount Digit 3"}, 0x36C0:{size:[8,8],format:"ia4",name:"Item Amount Digit 4"}, 0x3700:{size:[8,8],format:"ia4",name:"Item Amount Digit 5"}, 0x3740:{size:[8,8],format:"ia4",name:"Item Amount Digit 6"}, 0x3780:{size:[8,8],format:"ia4",name:"Item Amount Digit 7"}, 0x37C0:{size:[8,8],format:"ia4",name:"Item Amount Digit 8"}, 0x3800:{size:[8,8],format:"ia4",name:"Item Amount Digit 9"}, 0x3840:{size:[16,8],format:"ia4",name:"1/2 (Beta Double Magic Meter?)"}, 0x38C0:{size:[8,16],format:"ia4",name:"Magic Meter Side"}, 0x3940:{size:[24,16],format:"ia4",name:"Magic Meter Middle"}, 0x3AC0:{size:[8,8],format:"ia4",name:"Magic Meter Fill"} } } Here are some textures that I've extracted (they're grouped instead of individual ones)The 90 32x32 item textures (file: icon_item_static offset: 0x0): https://dl.dropboxusercontent.com/u/6440063/cmz64e/icon_item_static_items_rgba32_24x2880.png The 20 24x24 item textures (file: icon_item_24_static offset: 0x0): https://dl.dropboxusercontent.com/u/6440063/cmz64e/icon_item_24_static_rgba32_24x1920.png All the non-localized menu background tiles (file: icon_item_static offset: 0x5C3C0): https://dl.dropboxusercontent.com/u/6440063/cmz64e/icon_item_static_menu_background_tiles_ia4_80x2208.png All the basement/floor buttons (file: icon_item_dungeon_static offset: 0x0): https://dl.dropboxusercontent.com/u/6440063/cmz64e/icon_item_dungeon_static_floor_buttons_ia4_24x272.png The game font (file: nes_font_static offset: 0x0): https://dl.dropboxusercontent.com/u/6440063/cmz64e/nes_font_static_i4_16x2240.png You can simply edit these textures, convert them back to the correct format, and add them back into the ROM. Saves the trouble of having to edit the textures one by one.
  20. I am quite surprised that there was no mention of a more generic temple. I myself always look forward to a Hyrule Castle styled dungeon. Kind of like in A Link to the Past. It doesn't really belong to a specific theme in itself, it is quite generic, but still very enjoyable and has a great feel. I guess you could say pretty much the same about the Hyrule Castle in Twilight Princess, but I can't really say, since it was so long ago I played through it I barely recall that dungeon. This is my favorite kind of dungeon, and as long as this is delivered, I will most likely have an enjoyable experience. I'd consider things like Forsaken Fortress in Wind Waker to be quite generic as well. I also enjoyed that a lot, but I still prefer the castle styled ones by a lot. Basically I enjoy dungeons where they're enjoyable and unique without the need of abusing a specific theme a lot, because in those dungeons you really do not know what to expect until it happens. If it's a themed dungeon you have a much better picture of what to expect. Otherwise I'd most likely go for some generic themes such as Forest, Fire or Lava, Water, Ice, Sand or Earth, Shadow or Spirit, Light. I don't really know a complete roster though.
  21. Okey, so I've began rewriting how the editor handles files, and it now uses the entire ROM file. As a result I now use the dma table to get the proper offsets for all the files, meaning that the editor also will work for modified ROM files. One thing that I should note is that in reality you do not actually need to load an entire ROM file. What it does is when you load the file if extract the files required by the editor with help from the dma table. So it is technically possible to just import the required files one by one until you've provided all of them, but it is also possible to simply provide an entire ROM file. At the moment the editor uses dmadata.zdata, ovl_kaleido_scope.zdata, and various texture files (I've not yet finished the code, so I myself am not sure exactly which ones), this is without including the file select addon. I am going to set up the editor so that when you save, it will generate a zip file containing all the files that were edited (meaning that if you do not edit a specific file in the editor, it won't be downloaded), as well as a text document listing the changes that were done to each file (Still working out the display format for this). I am also currently working on a new autoload feature that will be available for those who download the editor. It works so that after you've provided all the required files in the editor, you can choose to generate an autoload folder. What this does is it take each file required by the editor, convert each individual file to a hex string, convert the hex string into a base64 string, add a prefix and suffix to this string so that it becomes a variable (ex. '$autoload.ovl_kaleido_scope="...base64 string here...";'), create a javascript file for each file, put them in a folder called autoload, put that folder in a zip document, and then download that zip document. Then all you need to do is extract the autoload folder in the root directory of the editor and the next time you open it it will load all the javascript files that've been generated in the autoload folder, convert them back to the proper format, and run. This is the only solution I've come up with since offline websites can't access local files automatically. So now that I've worked out how I will handle the files as well as autoloading, I can soon begin working on the saving process. After that is done, I can begin working on loading textures and such directly from the ROM, which was my initial goal. Edit: File loading is done! https://dl.dropboxusercontent.com/u/6440063/cmz64e/fileload.png You can provide an entire ROM file and it extracts the required files from it, or you can provide each file that's required manaully. I added a list that will display each required file, and mark it when the file has been loaded. Autoloading is also done, in fact, the dmadata.zdata file was autoloaded when I took the screenshot, which also means that it is indeed possible to choose to only autoload specific files. Edit2: Here's the current layout for the text document that is generated when you save (and in other news, saving is now done): It was just a quick test that I put together to see if it would be feasible to implement a changelog for files that're downloaded. Turns out that it was simple. I just had to add a very small code to the function I use to write all the changes when saving so that it store a list of all values that were altered during the proccess. Note how a bunch of -52 values were changed. This is because -52 is the default Y position of all the Ocarina Notes in the quest status screen (these values are unused). The other 2 values were me moving the heart piece to make sure that things worked properly. Edit3: I updated the format for the changelog that is generated. It will now display the object that is being edited, and what data of that object it is that's being changed. Instead of displaying the data as a message it's displayed as a table. I will most likely change the format in the Old/New Val columns to hex later. Edit4: The editor is now capable of loading textures directly from the files. (It is still limited to ia4 textures though) Here is an example: https://dl.dropboxusercontent.com/u/6440063/cmz64e/pause_screen_texture_layout.png That's a 80x2208 ia4 texture generated at offset 0x5C3C0 in file icon_item_static. (in reality it is 69 80x32 textures) And another example: https://dl.dropboxusercontent.com/u/6440063/cmz64e/icon_item_dungeon_static_ia4_24x314.png I generated a 24x314 ia4 texture out of the icon_item_dungeon_static file. Edit5: Completely forgot about cross-browser support.. I did a quick test in IE11, Firefox, Opera and Chrome. The results were not what I had expected. Chrome: Everything works perfectly and the framerate is good. Internet Explorer 11: Site does not work, at all. There must be some code that isn't supported which breaks the global loop, or maybe even the initialization. Opera: framerate is good, there is a slight slowdown when generating the download files when saving, but otherwise everything works perfectly. Firefox: Bad framerate. It is about half of what chrome & opera has. The framerate also affect the menu tabs response time and such, so it is clearly noticable. Slight slowdown when generating the download files. I expected Opera to do worse than Firefox, since that's usually the case. I did not expect IE11 to be broken yet again. so many errors that needs to be caught... I'm not sure what to do about the framerate issue in Firefox.
  22. I actually like this movement system. In many situations I greatly prefer moving in the grid system, so there're many situations where I use the D-Pad instead. (I used to get stuck at corners and stuff with the rollerskates a lot) However, I have to agree that I didn't like it at first. And rollerskates will be partially absolete thanks to the bike, which feels amazing. And the bike kind of suggest that they made you move in the grid system on purpose for standard movement, since they could very easily allow you to move freely. Also, I've yet to encounter a shiny, even after getting a ~30 streak with pokérader. (I've never encountered one in my life that I'm aware of, except for Gyarados ofc.)
  23. Ohh, I haven't played it for a while now. I played it pretty much all day every day when it came out until I had about 90 hours playtime. I farmed my perfect IV dittos... Breeded... Searched for every TM in the game... Leveled pokémon up to 100... Caught about 180 pokémon.... Then I just put it down and told myself that I was done. (Mainly because I'm playing the hearthstone beta instead) The game was amazing though, it is probably my favorite pokémon game? I am sad for the lack of endgame content though. Still totally worth the money.
  24. I totally would, if it wasn't for the fact that everyone except you mods on the debug rom. <.<' I myself initially modded 1.0, but switched to debug because that's the version my editor is going to support, and it would be dumb for me to have the editor for 1 version, and the rest for another. I do not really see the point in using the debug rom, but I'm inexperienced in a lot of things, so there's probably some specific reasons I'm not aware about? The only reason I can think of would be printing text on the screen, which I believe only has been achieved in the debug rom because the stack pointer hasn't been figured out or something like that. (this may not be the case anymore, I'm not sure) But I've yet to see a mod that actually prints text on screen anyway, so yeah, that's not a valid reason either.
×
×
  • Create New...

Important Information

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