SanguinettiMods Posted June 20, 2011 Share Posted June 20, 2011 Alright, another program ^^ Zelda MultiPurpose Editor 1.1 (ZMPE V1.1) Written in C by SanguinettiMods. Credit=+=+=+=+=+=+vvvvvvv Flotonic-+-+ :::::::::::: FLotonic was a very cutial addition to this project, without him, I would be stuck at some very tight spots. He gave me permission to use some of his coding from other programs of his, as well as letting me add 3 programs from his Link Editor in C to this editor. Give him credit when using this program. :::::::::::: Others :::::: I want to thank other members of the community for providing documentation on some things in the ROM, such as the offsets for Tunic colors and such. :::::: Satoshi Kura++++=====+++++ :::::::::::::::::::::::::: Satoshi helped as my "Beta Tester" when some of the programs were in development. He picked out problems that I missed, as well as had fun using the programs. Thanks~ :::::::::::::::::::::::::: This program was written entirely in C spanning for a little less than two weeks. This resulted in a whopping 3368 Lines of source code. Suggestions? Contact me, the creator, at SanguinettiMods@Hotmail.com This program includes: -The ability to edit Oot's Header(SanguinettiMods) -The ability to edit MM's Header(SanguinettiMods) - An MM Tunic Changer (SanguinettiMods) -An OoT Tunic Changer (SanguinettiMods) -OoT Spin Attack Modification (SanguinettiMods) -OoT DList recoloring (SanguinettiMods) -OoT Sword Slash Modifier(SanguinettiMods) -The ability to edit OoT Item Maximums (Flotonic) -The Abilty to edit OoT's Rupee Values (Flotonic) -The Ability to edit OoT's Wallet Maximums (Flotonic) - Navi Color Editor (SanguinettiMods) I'm not releasing the source code. Download - Here! Link to comment Share on other sites More sharing options...
DeathBasket Posted June 20, 2011 Share Posted June 20, 2011 This resulted in a whopping 3368 Lines of source code.omgwtf Well anyway, nice program but I'd recommend being able to choose a ROM without it having to have a specific filename and adding a main loop for the program so you don't have to keep reopening it to use different features; you should try rewriting this as a gui program rather than cli, it'd work so much better. Link to comment Share on other sites More sharing options...
xdaniel Posted June 20, 2011 Share Posted June 20, 2011 (edited) Mind if I give some criticism? For one, don't hardcode filenames into your program! Not everyone has their MQ Debug ROM named ZELOOTMA.Z64, so just give the user the option to enter the filename, like you give them the option to enter whatever else already. Second, the header editor is broken, it stops writing to the ROM at the first space. Also, the game title can be 20 characters long, not just 19. And also, there's programs identifying the ROMs according to their title and ID - "THE LEGEND OF DEBUG" already caused more harm than necessary in that regard - so I'd actually advise against editing the header in general. And on the subject of the ROM header, you should also look into identifying ROMs instead of blindly assuming that the user provides the correct ROM. What if someone loads in, say, a decompressed OoT ROM instead of the MQ Debug ROM? Some things that came to my mind when starting the program. It's a good idea, but what I tried is - in my opinion anyway - full of tiny flaws. EDIT: Also, 3368 lines of source? Sayaka's Ucode interpreter is just over 2000 lines long, the game handler just over 1800 lines. Isn't that a bit much for a relatively simple command line tool? Edited June 20, 2011 by xdaniel Link to comment Share on other sites More sharing options...
Zeth Ryder Posted June 20, 2011 Share Posted June 20, 2011 Everyone basically summed up my criticism I had offer but I also am asking why not release the source code? If your learning to program, then these guys can help you improve your code to be better and be able to discuss it with you so you can make the program efficiently, its not like anyone is steal your work and call their own. But the choice is yours, this is just my two cents. Link to comment Share on other sites More sharing options...
Secant Posted June 20, 2011 Share Posted June 20, 2011 Everyone basically summed up my criticism I had offer but I also am asking why not release the source code? If your learning to program, then these guys can help you improve your code to be better and be able to discuss it with you so you can make the program efficiently, its not like anyone is steal your work and call their own. But the choice is yours, this is just my two cents. This. Open source programs get stuff done. Also agree with comments on the 3368 lines of code--a long source does not make a good one. Efficiency should be taken into consideration once you get the program fully working. Ideally, a program should do as much as possible with as few lines of code as is also possible. Link to comment Share on other sites More sharing options...
SanguinettiMods Posted June 20, 2011 Author Share Posted June 20, 2011 Hmm, Thanks for the criteria. I would re-make it in a GUI, just for fun, but in VB, I have NO Idea how to edit a file in Hex, like I do in C. I don't see why the Header Editor would be broken, but I guess it is. I've decided to release my source code, since apperently I should. Go Ahead, if you can find a way to make it better, knock yourself out. - Source Code Also, remember, that I'm an 11 year old, so I don't know how to do everything. Link to comment Share on other sites More sharing options...
xdaniel Posted June 20, 2011 Share Posted June 20, 2011 The header editor is broken because, like this, scanf doesn't take spaces. As for making the code smaller and the like, don't duplicate the same code over and over, rather use functions that take certain parameters and/or return certain values. Like entering RGB values (from memory, so bear with me if it doesn't work right out of the box, tho it should): void RGBwrite(int offset) { char rr, gg, bb; printf("\nBe sure to use the RR GG BB format!\n\nRed Value (Hexadecimal) = "); scanf("%x",&rr); printf("Green Value (Hexadecimal) = "); scanf("%x",&gg); printf("Blue Value (Hexadecimal) = "); scanf("%x",&bb); fseek ( ootrom , offset , SEEK_SET ); fputc(rr,ootrom); fseek ( ootrom , offset+0x1 , SEEK_SET); fputc(gg,ootrom); fseek ( ootrom , offset+0x2 , SEEK_SET); fputc(bb,ootrom); printf("\nDone!\n\n"); } And called like so: if (oottunic=='1') { printf("Currently editing the Kokiri Tunic.\n"); RGBwrite(0xB9D1A8); } That said, at 11, I was messing around in VB 4.0, doing random junk, so in that regard you're already ahead of me when I was that age Link to comment Share on other sites More sharing options...
DeathBasket Posted June 20, 2011 Share Posted June 20, 2011 Couldn't you use Visual C++? My advice would be to think a little more about the program before you rush into writing it. You should learn how and when to use things like loops and functions too because I'm pretty sure that'd save many lines of code here. I'm not saying you're a bad programmer because you've probably only just started but you should try out some more examples to learn more about the language you use because that will improve anything you program in the future. Link to comment Share on other sites More sharing options...
SanguinettiMods Posted June 21, 2011 Author Share Posted June 21, 2011 As I've already said, I plan to make updates. Don't think that this program ends right here and Right now. But C++ is a different Language that I'd have to learn. Link to comment Share on other sites More sharing options...
Jason777 Posted June 21, 2011 Share Posted June 21, 2011 The display list recoloring part is quite useful Link to comment Share on other sites More sharing options...
DeathBasket Posted June 21, 2011 Share Posted June 21, 2011 I'm pretty sure you can use C code with any C++ development tools, but then again I don't program with C. Link to comment Share on other sites More sharing options...
spinout Posted June 21, 2011 Share Posted June 21, 2011 Pro-tip: Don't use the scanf family to get integers. Use strtol and strtoul. strtoul and strtol are really neat, because if you specify the base as 0, it automatically detects the base - weather it be octal, decimal, or hexadecimal. The functions also ignore leading and ending whitespace Link to comment Share on other sites More sharing options...
SanguinettiMods Posted June 21, 2011 Author Share Posted June 21, 2011 The display list recoloring part is quite useful Thanks^^ That part took me the longest. o.o Link to comment Share on other sites More sharing options...
alphaheiti Posted September 25, 2011 Share Posted September 25, 2011 link is down D: can you upload it again plz? Link to comment Share on other sites More sharing options...
Recommended Posts