Jump to content

Jason777

Member
  • Posts

    908
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by Jason777

  1. If I had to choose one of the words you put down in the original post it would have to be "curious".
  2. I like it. Texturing is clean and flows smoothly. Then again, you can't really go wrong with square tile textures. Just place some actors in there, add a few more rooms, and you could have a small little dungeon!
  3. It really bothers me how nobody seems to be paying attention to more your recent programs The same could be said for spinout... Keep up the good work!
  4. Looks pretty sweet, I look foward to the release of the source.
  5. One question, how do you plan on getting the code to run? You know that simply inserting your code at the end of an actor file won't affect it in the way that you are hoping, right? By the way, the program for which you are looking for is called an assembler. When I need to convert my things into GS codes, I tend to use Renegade64; when I need to get a binary (this is what you want), I use mips-gcc along with a few other tools which come with GCC (objcopy,mips-as, mips-ld, etc). However, let me just say that the way you plan on modifying the actor would probably be more trouble that it's worth. You would be better off disassembling with zOVLDis and reassembling the actor with mips-gcc and nOVL to make your changes.
  6. That's the way I was thinking of doing it.. It just seemed too straightfoward. Anyhow, thanks spinout (like always). Does anyone have any ideas or methods to which they think I would be able to find the "shoot arrow" flag? Originally, I was thinking of monitoring the player controller to see what runs directly after the C-button is let go in the arrow actor. However, there doesn't seem to be any references to the controller RAM address in the arrow actor or the ovl_en_player actor after the arrow is spawned.. Any suggestions?
  7. Everything from scenes, rooms, cutscenes,game text, and some parts of code.zdata, and objects follows a format. You don't need to know any programming for these things unless you want to write a tool which modifies them for you. People usually use hex editors to modify these. This area of hacking isn't all that hard to understand and only requires for you to memorize file formats. Everything else (such as actors) is made up of code. You would need to know MIPS assembly and C programming to understand how these things work. Writing tools for these things may prove to be a lot more difficult than the files which follow a format. People usually use disassemblers to modify these. These area of hacking is much more difficult. Also, haddockd, I'm surprised anybody took notice of the things I have done Like spinout, I hardly get any feedback... Then again, I have only written one tool so far which deals with some of the low-level parts of the ROM. Anyways, the Wiki is a great place to start reading up on file formats: http://wiki.spinout182.com
  8. Senior year is here and I don't really look all that much different... You gotta love Instagram's filtering effects.
  9. I've been trying to download this but for some reason "I don't have permission to access this file"... I'm quite interested in what you have here
  10. I've finally decided to release the source. Perhaps some people can clean up my work and figure out why it doesn't work for SharpOcarina... Source (developed with Code::Blocks) : http://www.mediafire.com/?e9vc96vyplc0mg5
  11. Jason777

    Need an explanation

    For C++, the language that function is written in, I tend to look at http://cplusplus.com
  12. I do remember you making a video of a code which generated dynamic weather effects... could this be the same code? If so, awesome!
  13. Jason777

    Need an explanation

    It's due to endianess. Here's a function that I have written in C++ (it isn't entirely mine, I've just modified it by adding templates so you can use arguments of 16-bit, 32-bit, and 64-bit) that converts from little-endian (example: "4321 8765") to big-endian (normal order) if needed: #include <typeinfo> #include <stdint> // Endian Checking Macros const int i = 1; #define IS_BIGENDIAN() ( (*(char*)&i) == 0 ) template <class T> T ReverseOffset(T Offset) { unsigned char c1, c2, c3, c4, c5, c6, c7, c8; if (IS_BIGENDIAN()) return Offset; else { if (typeid(T).name() == typeid(uint64_t).name()) { c1 = Offset & 0xFF; c2 = (Offset >> 8) & 0xFF; c3 = (Offset >> 16) & 0xFF; c4 = (Offset >> 24) & 0xFF; c5 = (Offset >> 32) & 0xFF; c6 = (Offset >> 40) & 0xFF; c7 = (Offset >> 48) & 0xFF; c8 = (Offset >> 56) & 0xFF; return ((T)c1 << 56) + ((T)c2 << 48) + ((T)c3 << 40) + ((T)c4 << 32) + ((T)c5 << 24) + ((T)c6 << 16) + ((T)c7 << 8) + c8; } else if (typeid(T).name() == typeid(uint32_t).name()) { c1 = Offset & 0xFF; c2 = (Offset >> 8) & 0xFF; c3 = (Offset >> 16) & 0xFF; c4 = (Offset >> 24) & 0xFF; return ((T)c1 << 24) + ((T)c2 << 16) + ((T)c3 << 8) + c4; } else if (typeid(T).name() == typeid(uint16_t).name()) { c1 = Offset & 0xFF; c2 = (Offset >> 8) & 0xFF; return (c1 << 8) + c2; } } return Offset; } By the way, spinout has already written a save file editor: http://64.vg/src/c9b6ce6071c84b8ed03b5844ea80632d Either way, good luck to any future programs you are writing
  14. It looks like I'll have to try and find it myself again :/ Honestly, I can comprehend and understand a lot of things about hacking but I just can't seem to understand how to "search" for currently unknown values or RAM addresses... which sucks because it's a necessary skill to make hacks in ASM, C, or GS. The only hacks I've made were ones which utilized RAM address documenation that was already available to me.
  15. Sweeeeet. I'll be testing this as soon as I get home from class today Awesome work, xdaniel!
  16. I have one thing to ask of the members of this community... I am looking for the flag within the arrow actor that tells whether or not to shoot the arrow. If you don't know what I'm talking about, think of it as whenever you let go of the bow string, the arrow fires. The problem is that if you just spawn a regular arrow actor it doesn't fire and floats in mid-air. Also, just a quick question: How would I "kill" an actor? I know that actors work in doubly-linked lists but would killing an actor through unconventional means (screwing with the actor panel in the RAM) automatically fix the pointers to the "next" and "previous" actor?
  17. I probably won't be of much help here since I can't really relate to much except for the girlfriend issue; I tend to just have a lot of one night stands... but it doesn't really bother me. To improve your social life I would suggest doing as Naxy had stated: step out of your comfort zone and force yourself to go to a few social events like parties (just don't get too fucked up). If you're scared of going to a party by yourself, grab your one friend and have him be your wing man. He can bring another wing man if he likes and chances are that guy will share the same interests. However, remember to stay smart about the things you do. As for the girlfriend problem, be friends with a lot of girls and the issue just tends to solve itself. I've kind of gotten used to being single and have been able to get my fair share of experience (if that's what you're going for), but I can honestly say that being friends with girls opens a lot of doors for you. Chances are that one of the girls you became friends with actually likes you or has a friend that has taken notice of you. ... Or maybe I'm just talking out of my ass since I don't really know what it's like. Either way, I hope this reply is of help to you.
  18. A simple work-around for getting a gate to open through a switch would be to add two other actors to your wolfos-gate combo. - A fire circle - A switch Place a switch in the same place of a fire cirlcle. Set the fire circle to deactivate after the clear trigger has been set (the wolfos has been killed). From there, just set the gate to the switch flag (once the switch is pressed). Ultimately, it would be the same concept as "kill wolfos -> open gate".
  19. I don't even know what's going on...
  20. Ahh, that brings back memories. Me and my friend would spend some days making goofy faces and taking pictures with the gameboy.
  21. Skelux always makes amazing things. Super Mario Star Road is on par with the original SM64 in my opinion.
  22. Do you plan on inserting any custom maps or objects?
  23. Well that's pretty interesting. A really easy and accurate way to find the routines where the actor spawns another actor is to take the disassembled actor, open it in a text editor, and do a search for "jal 0x80031F50" (the most commonly used actor spawning function) or "jal 0x80032458" (a function that sets up certain attributes of an actor automatically before calling the actor spawn function. It is used to spawn deku seed and arrow projectiles). Once you have a result, just see which actor is being spawned by finding the value that register $a2 (for function 0x80031F50; you would check register $a3 for function 0x80032458) and the actor's variable can be found at $sp + 0x24 (for function 0x80031F50). From there you would merely modify the value stored in those registers, reassemble the actor with gcc and nOVL, inject it back into the ROM, and you have your hack finished. It would be good to look at this page: http://wiki.spinout182.com/w/Debug_ROM:_RAM_Map#ActorSpawn
×
×
  • Create New...

Important Information

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