Hacker's Cheat

Go down

20130924

Post 

Hacker's Cheat Empty Hacker's Cheat




I wrote a little patch that is good for testing. When pressing the "L"-button you will gain a maximum inventory (all items, the highest possible) and 50 bombs, 50 arrows, some rupees (not much cause cpu is in 8 bit mode when calling the hack, but this can be changed if wanted by someone), all hearts, 1/4 magic and so on. It is commented so you can easily modify it.

Code:
;this is for getting maximum possible items (rom hacker's cheat for testing) when pressing L button, i use bank 0x3C for the whole code
;WRITTEN: by XaserLE
;THANKS TO: -MathOnNapkins' Zelda Doc's
; -wiiqwertyuiop for his Zelda Disassembly


;header
lorom

ORG $068365 ; go to an originally JSL that is executed every frame
JSL $3CA62A ; overwrite it (originally JSL $099F91)

ORG $3CA62A ; go to expanded space to write our routine (keep EveryFrame.asm in mind for the right adresses)

LDA $F2 ; load unfiltered joypad 1 register (AXLR|????)
CMP #$20 ; L button pressed?
BEQ $03 ; if yes, branch behind the jump that leads to the end and load items instead
JMP END

LDA #$03 ; 0 - nothing. 1 - bow w/ no arrows. 2 - bow w/ arrows. 3 - silver arrows
STA $7EF340
LDA #$02 ; 0 - nothing. 1 - blue boomerang. 2 - red boomerang
STA $7EF341
LDA #$01 ; 0 - nothing. 1 - hookshot.
STA $7EF342
LDA #$32 ; How many bombs you have. Can exceed 0x50, up to 0xff.
STA $7EF343
LDA #$02 ; 0 - nothing. 1 - Mushroom. 2 - Magic Powder
STA $7EF344
LDA #$01 ; 0 - nothing. 1 - Fire Rod
STA $7EF345
LDA #$01 ; 0 - nothing. 1 - Ice Rod
STA $7EF346
LDA #$01 ; 0 - nothing. 1 - Bombos Medallion
STA $7EF347
LDA #$01 ; 0 - nothing. 1 - Ether Medallion
STA $7EF348
LDA #$01 ; 0 - nothing. 1 - Quake Medallion
STA $7EF349
LDA #$01 ; 0 - nothing. 1 - Torch
STA $7EF34A
LDA #$01 ; 0 - nothing. 1 - Magic Hammer
STA $7EF34B
LDA #$03 ; 0 - nothing. 1 - shovel. 2 - flute, no bird. 3 - flue, bird activated
STA $7EF34C
LDA #$01 ; 0 - nothing. 1 - bug catching net
STA $7EF34D
LDA #$01 ; 0 - nothing. 1 - Book of Mudora
STA $7EF34E
LDA #$01 ; 0 - nothing. 1 - has bottles.
STA $7EF34F
LDA #$01 ; 0 - nothing. 1 - cane of somaria.
STA $7EF350
LDA #$01 ; 0 - nothing. 1 - cane of byrna.
STA $7EF351
LDA #$01 ; 0 - nothing. 1 - magic cape.
STA $7EF352
LDA #$02 ; 0 - nothing. 1 - scroll looking thing that works like mirror. 2 - mirror with correct graphic.
STA $7EF353
LDA #$02 ; 0 - normal strength. 1 - Power Gloves. 2 - Titan's Mitt
STA $7EF354
LDA #$01 ; 0 - nothing. 1 - pegasus boots. *Just having the boots isn't enough to dash. You must have the ability flag corresponding to run set as well. See $379.
STA $7EF355
LDA #$01 ; 0 - nothing. 1 - flippers. Having this allows you to swim, but doesn't make the swim ability text show up by itself. See $379. Unlike the boots, the ability is granted, as long as you have this item.
STA $7EF356
LDA #$01 ; 0 - nothing. 1 - moon pearl.
STA $7EF357
LDA #$04 ; 0-No sword. 1-Fighter Sword. 2-Master Sword. 3-Tempered Sword. 4-Golden Sword
STA $7EF359
LDA #$03 ; 0-No shield. 1-Blue Shield. 2-Hero's Shield. 3-Mirror Shield  
STA $7EF35A
LDA #$02 ; 0-Green Jerkin. 1-Blue Mail. 2-Red Mail
STA $7EF35B
LDA #$02 ; 0-No bottle. 1-Mushroom (no use). 2-Empty bottle. 3-Red Potion. 4-Green Potion. 5-Blue Potion. 6-Fairy. 7-Bee. 8-Good Bee
STA $7EF35C
LDA #$08 ; second bottle
STA $7EF35D
LDA #$05 ; third bottle
STA $7EF35E
LDA #$06 ; fourth bottle
STA $7EF35F
LDA #$E7 ; 2 bytes for rupees (goal, for counting up)
STA $7EF360
LDA #$03
STA $7EF361

; a few bytes for dungeon items like compasses, maps and big keys are here, we jump over that

LDA #$A0 ; health capacity (maximum number of hearts)
STA $7EF36C
LDA #$80 ; magic power, maximum is 0x80
STA $7EF36E
LDA #$A0 ; Fill all hearts
STA $7EF372
LDA #$07 ; Pendants: Bit 0 = Courage, Bit 1 = Wisdom, Bit 2 = Power
STA $7EF374
LDA #$32 ; How many arrows you have. Can exceed 0x70.
STA $7EF377
LDA #$6E ; Ability Flags: Bit 0: ----. Bit 1: Swim. Bit 2: Run / Dash. Bit 3: Pull. Bit 4: ----. Bit 5: Talk. Bit 6: Read. Bit 7: ----
STA $7EF379
LDA #$7F
STA $7EF37A ; Crystals: Bit 0 = Misery Mire, Bit 1 = Dark Palace, Bit 2 = Ice Palace, Bit 3 = Turtle Rock, Bit 4 = Swamp Palace, Bit 5 = Gargoyle's Domain, Bit 6 = Skull Woods
LDA #$02 ; Magic usage: 0: normal consumption. 1: 1/2 consumption. 2: 1/4 consumption
STA $7EF37B

END:

JSL $099F91 ; at least execute original code

RTL
EDIT: Pendants and crystals added


Last edited by XaserLE on Thu 3 Oct 2013 - 5:22; edited 5 times in total
avatar
XaserLE

Hacker's Cheat Image111

Since : 2013-01-22

Back to top Go down

Share this post on: reddit

Hacker's Cheat :: Comments

Puzzledude

Post Tue 24 Sep 2013 - 13:05 by Puzzledude

This is very useful. Of course it is recomended to save & quit after this effect, to reload the new sword and shield correctly.
 
Here is the upper asm in hex
 
30366,
2A A6 3C
 
1E262A, (file size must be 1FFFFF= 2MB)
A5 F2 C9 20 F0 03 4C 17 A7 A9 03 8F 40 F3 7E A9 02 8F 41 F3 7E A9 01 8F 42 F3 7E A9 32 8F 43 F3 7E A9 02 8F 44 F3 7E A9 01 8F 45 F3 7E A9 01 8F 46 F3 7E A9 01 8F 47 F3 7E A9 01 8F 48 F3 7E A9 01 8F 49 F3 7E A9 01 8F 4A F3 7E A9 01 8F 4B F3 7E A9 03 8F 4C F3 7E A9 01 8F 4D F3 7E A9 01 8F 4E F3 7E A9 01 8F 4F F3 7E A9 01 8F 50 F3 7E A9 01 8F 51 F3 7E A9 01 8F 52 F3 7E A9 02 8F 53 F3 7E A9 02 8F 54 F3 7E A9 01 8F 55 F3 7E A9 01 8F 56 F3 7E A9 01 8F 57 F3 7E A9 04 8F 59 F3 7E A9 03 8F 5A F3 7E A9 02 8F 5B F3 7E A9 05 8F 5C F3 7E A9 06 8F 5D F3 7E A9 08 8F 5E F3 7E A9 02 8F 5F F3 7E A9 FF 8F 62 F3 7E A9 A0 8F 6C F3 7E A9 80 8F 6E F3 7E A9 A0 8F 72 F3 7E A9 32 8F 77 F3 7E A9 6E 8F 79 F3 7E A9 02 8F 7B F3 7E 22 91 9F 09 6B

Back to top Go down

avatar

Post Tue 24 Sep 2013 - 16:59 by XaserLE

It should be enough to go in a dungeon to reload it, this worked for me.

Back to top Go down

Conn

Post Tue 24 Sep 2013 - 18:22 by Conn

definitively a help and well done Smile

A small note to the rupees:
$360 is the goal (2 bytes; e.g. you buy something this address is set so your actual rupees will count down until they hit this value) and $362 is actual (2 bytes as well).
So if you set the 2nd byte ($361 or $363) you will have more rupees:
7e/f363-98 will give you full 999 rupees.

Back to top Go down

avatar

Post Wed 25 Sep 2013 - 3:59 by XaserLE

Oh damn :-D, i didn't notice that i can set the second byte seperatly, so no 16-bit mode is necessary :-D, thanks Conn. But i think it is 361, not 363, cause 362/3 is the actual value and 360/1 (goal) is always set to the actual value, so changing 362/3 will set the rupees in the hud on that new value and making them count down/up to the old value you had before.
Edited my first post with the new version.

I noticed an interesting thing: When Zelda is rescued and in the church but you haven't collected any pendants --> after using the cheat, the priest lay's down and Zelda disappeares (normal case when getting the master sword i think). So it seems that when coming in the church the game checks whether you have the master sword in your inventory or not.

By the way: Any ideas to increase the rupees counter to 4 digits? (like AST with 5 and PW with 4)

Edit: @puzz: now i know what you mean with the shiel and sword graphics. entering a dungeon isn't enough, but using the mirror in a dungeon (to get transported to the entrance) is enough to reload all graphics correctly.

Back to top Go down

Conn

Post Wed 25 Sep 2013 - 6:02 by Conn

To have more than 999 rupees is easy:
06/dbeb: c9 e8 03 -> ea ea ea (nop out the check that you have 1000 rupees, so the game won't stop counting beyond 999)

However, you'd need some asm to insert a fourth digit. AST even has 5 digits, that lets you collect complete ff ff (65,535) rupees.
I was once hacking a result screen for AST. The calculation procedure from hex to 5 digits decimal was awful, if you go for this you definitively should check the calculation procedure of AST.

But if Euclid already made this for PW, why not just asking him to publish his asm (no need to make redundant work)? It only needs to be adjusted so that the 24 items hud rupee marker is shifted to the left. Inserting a 5th digit is obsolete in my opinion since in contrast to AST you (1) will not be able to collect so many rupees in ALTTP (2) you won't need them (but to be on the save side you should set above code to c9 10 23 (10,000 so the collect stops after 9,999).

As for bombs and arrows (check the maximum 50 or 70 to be able to have 99 in the end). You can cheat for a maximum of 99 (63 at 7e/f377 arrows and 7e/f343 (bombs).
The capacity when collecting however is determined at 7e/f370 (bombs) and 7e/f371 (arrows).  
The maximum upgrade by wishing pond of bombs is here:
03/46a7: c9 07 (dunno why it is 07. start with 10 bombs, upgrade in 5 bomb steps it should be 8, except you gain 10 bombs with one upgrade (step 40-50 bombs skipping 45?)
Arrows the same
03/472a: c9 07
It's maybe worth trying to set 7e/f370 and 71 to 09 and check whether you can collect up to 60 bombs and 80 arrows then...

Back to top Go down

avatar

Post Wed 25 Sep 2013 - 9:02 by XaserLE

Wow, so many info's, i really need to write this down :-).
You're right, 5 digits aren't necessary. But 4 digits were really good since one could make a hack with lot's of hidden rupees and some shops to buy some items.

I will write a pm to Euclid for this.

Back to top Go down

Erockbrox

Post Wed 25 Sep 2013 - 13:49 by Erockbrox

I like the idea of having 4 digits. Many times while playing Zelda 3 I would end up maxing out at 999 rupees and nothing is worse when you open up a chest that has 300 rupees in it only to find that none of them counted because you were already at the 999 limit.

Back to top Go down

avatar

Post Wed 25 Sep 2013 - 13:56 by XaserLE

I figured out that it is not really a problem to do it, seems to be quite easy, i am working on this. The only problem is that a patch for this would be hud-depending. Every special hud would need an own patch to draw the fouth digit at the right place and shift the other values (bombs, arrows) if they are drawed near the rupees like in alttp.

Back to top Go down

Conn

Post Wed 25 Sep 2013 - 14:02 by Conn

Cool, if you manage you could send the infos into the single hacks... guess more projects here would like to have this features.

Off-topic... Smile were you able to develop the introduction messages?

Back to top Go down

avatar

Post Wed 25 Sep 2013 - 14:12 by XaserLE

Ok i will try to put it in a patch and post it when finished.

About the messages: Since my last pm i didn't try to do it :-D.....i'm really sorry, i thought i were extremely easy to insert this messages, that was the reason i tried it but as seen it's a really annoying work :-/. If you want to do it i wouldn't be angry ;-) and i think you are a lot faster in finding the unique adresses than me.

Back to top Go down

Conn

Post Wed 25 Sep 2013 - 17:40 by Conn

Yes, it seems to be a bit more complicated than expected. If SePH tells me how to reach every boss I can give it a shot (2 I already have).

Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum