The Legend Of Zelda: Twilight Princess [RZDE01]

Started by Zxcman5, December 27, 2008, 09:47:35 PM

Previous topic - Next topic

Ethasus

Hi, I've got Zelda v2 and menu 4.1 i was wondering if the super spinner code got fixed yet because all the ones i found let you travel a few feet then propels you into the sky and causes SUPER lagging on everything but the music.

Codes

Hawkeye's Direct port of James' Super Spinner code #1
[spoiler]043CFEE4 08700870
04F455C4 3EC04300
04F455C8 92D9052C
04F43D70 EC22082A
2843316E F3FF0400
04F43D70 EC220828
2843316F 3FFF4000
04F43D70 FC20B090
2C433181 0000BE80
04F455C4 3EC041D0
2C433181 0000BF28
04F455C4 3EC03F00
E0000000 80008000[/spoiler]
And
Hawkeye's Edit on the code above
[spoiler]043CFEE4 08700870
04F455C4 3EC04300
04F455C8 92D9052C
04F43D78 EC22082A
2843316E F3FF0400
04F43D78 EC220828
2843316F 3FFF4000
04F43D78 FC20B090
2C433181 0000BE80
04F455C4 3EC041D0
2C433181 0000BF28
04F455C4 3EC03F00
E0000000 80008000[/spoiler]

Ethasus

First of all, how far are you trying to bring stuff too you?

The Clawshot will attach to anything solid in the direction you point it in, so you just need to have better aim because it still brings ruppees to you if you aim it right. for the Aeralfos(flying lizards), its auto-aiming, so usually it attaches to anything registered in the game as "clawshot-able" within a certain area, its probably aimed just below the Aeralfos' shield and is missing the center.

Ethasus

Quote from: Reaver107 on August 29, 2009, 01:58:40 PM
in terms of color modifier codes there isnt one for a Dark Link color scheme, i hope one can be made that'll work with all of link's outfits

Well to get Dark Link scheme for the Hero's Tunic the model textures would have to be rearranged and thats probably as hard a job as writing a code to modify the colour for the original texture. Now imagine how hard writing Dark link colour mods for the other Tunics would be. There isn't even simple color mod codes for the other tunics.

Wind Shadow

The super claw shot moves so quickly that it sometimes passes through pick-ups and enemies. So, instead of grabbing hold of a rupee, you latch onto the ground/wall behind it, and then, you're pulled towards it.

My solution was to make a jokered version of the code, but I only made it for version 2 of the game. :-\

Wind Shadow

#64
You gave me a funny idea for a code that makes the game harder.
This one will cause your health to decay over time.
I tried to make it as customizable as possilbe.

Wasting away again in Hyrule [Wind Shadow]
80000001 000189F8
4A00V001 80000000
AC000008 0000WWWW
3C479F32 FF0000MM
92010002 00479F33
86000002 000000FF
86300002 000000FF
94010002 00479F33
E2000002 00000000
4A000000 80000000
Health address credit to James0x57
Values of V: (Game Version)
1: version 1
0: version 2
Values for WWWW: (Inverse of decay speed)
0100: Rapid decay
03C0: Medium decay (approx 60 sec/heart)
1000: Slow decay
Values for MM: (Minimum 1/4 hearts to decay down to)
00: Can kill you
04: Spares your last heart
0C: Spares your last 3 hearts


I am not able to test this code on version 1 of the game, so please let me know if it works.

I forgot to mention that this code continues to cause your health to decay even while the game is paused and during cut scenes.

Hexon

I think I have version 1. I'll give this code a shot when I get a new power cable for my Wii, and let you know.

Looks like a neat code, thanks!

strongfan

is there any kind of code out there where I can put any kind of enemy(like, actor replacement maybe?) in some place where I can have a decent fight(eg right outside Link's house)?  I've already beaten the game, and now I'd just like to enjoy a plain ole swordfight.  Thanks!

mugwhump

#67
Hi all, seeing as TP would be much more fun if you took more damage and got fewer rupees, I was really hoping someone could make a code to accomplish this.

For multiplying the damage taken (by 3 or 4 maybe), I know that brkirch already accomplished this in AR for the GCN version (though his code froze the game whenever arrows spawned, hmmm): http://arcentral.net/Codes/NTSC/Legend_of_Zelda_Twilight_Princess.php
We already know the health address, which makes me think it can't be too tough, but then again I don't really know, haha. Is it just a matter of checking whether health's decreased, then multiplying the size of that decrease? Or is there more to it?

And I know hawkeye2777 made a nice 3-heart-challenge code, but there's no point doing sidequests for heart pieces with that on, and I like feeling like I'm being tangibly rewarded for doing sidequests. (I'm picky, yeah ._.)

Could there be a rupee code that works the same? Like, by halving the number of rupees you get? Or making stuff cost more? Because I feel like rupees were kinda useless in this game, and it'd be nice if half the treasure chests in the game contained something you actually cared about, lol.

I'm thinking about buying a gecko just to try and make these, cuz they'd be TEH BEST CODES EVR, but I can't quite afford it yet, so I thought I'd ask some of the kind souls on the wiird forums to help me out. Thanks in advance for any responses.  :smileyface:

edit: This is now part support thread. Support me plz :3

joe_263

I was thinking exactly the same thing. Twilight Princess is too easy so we need a code to make it harder. A damage multiplier code would be awesome. Also, it'd be nice if there was a code to make it so that you don't find hearts in grass so often.

mugwhump

Well, I decided to try my hand at making this myself, though I'm running into problems. My code checks if the old health value, stored in Gecko register N (which I reassign at the end of the code), is greater than the current health value. Then it multiplies the health decrease by X, then subtracts that from the old health. Judging from other codes, the health address seems to be 8049292A (credit for that to James0x57, apparently).

However, I can't figure out how to do subtraction using the Gecko register operations. They can do addition, multiplication, and, xor, bitshifts, etc, but no subtraction. I can't figure out how to get the two's compliment either, which would let me use addition. Help?

Here's what I've got so far
8000000M 00000000 grM=0
A2000000 NM00YYYY if grN has health value (grN!= grM) *do I need this? It's checking if I've assigned grN a health value yet, but if grN starts at 0, I might not
A449292A NF000000 if grN>HEALTH
8211000M 0049292A grM=newhealth (16 bits @ba+49292A)
8411000N 0049292A set health to grN(old health) (write 16bit grN to ba+49292A)
grN -= grM (grN=damage taken) *CAN'T FIGURE THIS OUT, WAT I DO*
8610000N 0000000X grN *= 4 (damage multiplied by X)
health -= grN
E2000002 00000000 2 endifs, ba, po=0
8211000N 0049292A grN = health (assigns this health to grN so we know if health decreases)

Also, with comparisons like
A2______ NM00YYYY : 16bits If not equal 16bits compares if ([grN] and not(YYYY))!=([grM] and not(YYYY))
what exactly does the "and not(YYYY)" do?

Again, any help is greatly appreciated.

Romaap

For subtraction you just add 0x00000000 - your value, so subtracting 0x1 is the same as adding 0xFFFFFFFF.

But the best solution for this is ASM, then you could just modify the command that subtracts health and multiply it before subtracting.

mugwhump

Quote from: Romaap on November 13, 2009, 11:53:54 AM
For subtraction you just add 0x00000000 - your value, so subtracting 0x1 is the same as adding 0xFFFFFFFF.

But the best solution for this is ASM, then you could just modify the command that subtracts health and multiply it before subtracting.
I know I could do that, but my value is a variable, and I can't find the operation to negate it (ie NOT/two's complement).  :(

I was worried I might have to use ASM... don't know squat about it.  :-\

joe_263

I have no idea what all these codes mean, but I'm supporting you all the way from the bench.  :cool:

mugwhump

Awww thanks joe

Well here it is, my code with...10 lines of ASM just for subtraction lol. Cant test it right now so I'm not sure if it works, but tell me if you see any problems.  O0

It uses the health address(HA)=8049292A, gecko register E(8000183C), and gecko register 1(80001808)
80000001 00000000 gr1=0
A2000000 E1000000 if grE has health value (grE!= gr1)
A449292A EF000000 if grE>HEALTH (HA+ba/po)
82110001 0049292A gr1=newhealth (16 bits @ba+49292A)
8411000E 0049292A set health to grE(old health) (write 16bit to HA+ba)
C2000000 00000004 grE -= gr1 (grE=damage) Assembly code 1
3C008000 8020183C
3C408000 80621808
7C830850 9080183C
60000000 00000000
8610000E 0000000X grE *= X (multiplied damage)
C2000000 00000004 health -= grE Assembly code 2
3C008000 8020183C
3C408049 8062292A
7C811850 9082292A
60000000 00000000
E2000002 00000000 2 endifs, ba, po=0
8211000E 0049292A grE = health (grE=16 bits at ba+HA)

Here's the Assembly codes
ASM1
lis r0, 0x8000     //load first 2 bytes(4 letters) of grE address
lwz r1, 0x183C(r0) //loads full val of grE into r1
lis r2, 0x8000     //first 2 bytes of gr1
lwz r3, 0x1808(r2) //loads rest of gr1 into r3
sub r4, r1, r3     //subtracts gr1(r3) from grE(r1), stores in r4...I think. Can someone confirm I'm doing this right?
stw r4, 0x183C(r0) //stores subtraction(r4) in grE(r0/r1)

ASM2
lis r0, 0x8000     //load first 2 bytes(4 letters) of grE address
lwz r1, 0x183C(r0) //loads full val of grE into r1
lis r2, 0x8049     //loads first 2 bytes of health address
lwz r3, 0x292A(r2) //loads full value of health in r3
sub r4, r3, r1     //subtracts grE(r1) from health(r3), stores in r4
stw r4, 0x292A(r2) //loads reduced health(r4) into health(r2/r3)

I know I could shrink it down a lot if I put the multiplication inside the ASM, but I didn't know the syntax...


About the Gecko registers: is checking if grE==0 a good way to tell if I haven't used it yet? And can I count on the value I store there not changing?

Also, should I add some code checking if link's health is gonna be reduced to below zero? Will it asplode if his health is negative?

Romaap

I don't think this is a good solution, because the Gecko registers are not always the same in every version of gecko.
It would be better if you alter the ASM instruction which subtracts the health.