Jump to content

[Tutorial][HGSS] Lift the 100 EV limit on Vitamins


Recommended Posts

Main feature

Awwww… too bad that Deoxys' stats are not recalculated after each fight like in Gen III, otherwise I would have used that.

First and foremost, you have to know that the game double-checks for the 100 EV limit:

  • the first check is triggered by the corresponding vitamin,
  • the second check is run no matter the used vitamin.

Now we choose a value to replace 64 (100) with, might as well use FC (252) for convenience's sake.

Here's how you proceed to lift the limit:

  • Decompress arm9.bin
  • Case-by-case checks
    • Go to offset 0×90034* and change the value 64 into FC, this is the check for the HP Up
    • Go to offset 0×900A0* and change the value 64 into FC, this is the check for the Protein
    • Go to offset 0×9010C* and change the value 64 into FC, this is the check for the Iron
    • Go to offset 0×9017A* and change the value 64 into FC, this is the check for the Carbos
    • Go to offset 0×901E8* and change the value 64 into FC, this is the check for the Calcium
    • Go to offset 0×90254* and change the value 64 into FC, this is the check for the Zinc

    * Regions' differences

    Language		Offset 1		Offset 2		Offset 3		Offset 4		Offset 5		Offset 6
    
    Japanese		0×8F910			0×8F97C			0×8F9E8			0×8FA56			0×8FAC4			0×8FB30
    Spanish HG		0×9002C			0×90098			0×90104			0×90172			0×901E0			0×9024C
    Korean HG		0×90728			0×90794			0×90800			0×9086E			0×908DC			0×90948
    Korean SS		0×90720			0×9078C			0×907F8			0×90866			0×908D4			0×90940
    Others			0×90034			0×900A0			0×9010C			0×9017A			0×901E8			0×90254

    [*]Global check

    • Go to offset 0×90A96* and change the value 64 into FC
    • Do the same at offset 0×90ABC* and offset 0×90AC0*

    * Regions' differences

    Language		Offset 1		Offset 2		Offset 3
    
    Japanese		0×90372			0×90398			0×9039C
    Spanish HG		0×90A8E			0×90AB4			0×90AB8
    Korean HG		0×9118A			0×911B0			0×911B4
    Korean SS		0×91182			0×911A8			0×911AC
    Others			0×90A96			0×90ABC			0×90AC0

Bonus feature 1: Change how many EV are given by each vitamin

  • Open the folder a/0/1/7.

The amount of EV added for one given stat W by its respective vitamin X is located at byte Y on file Z.

Stat		Vitamin		Byte	File
(W)		(X)		(Y)	(Z)

HP		HP Up		21  	45	
Attack		Protein		22  	46	
Defense		Iron		23  	47	
Speed		Carbos		24  	48	
Sp.Atk.		Calcium		25  	49	
Sp.Def.		Zinc		26  	52	

Note: First byte is assumed to be byte 0, not byte 1.

That byte always has a value of 10 (0A), it's a signed value who can subtract as much as 128 EV (80) or add as much as 127 EV (7F).

We're going to change that value to one who can divide 252 (FC) while staying very close to 10 (0A).

Why not 12 (0C)?

But what if you want to put EV not divisible by 12 in one particular stat?

Well, that's what EV-reducing Berries are for :P

Since the Vitamins are set up to give 12 EV now, it means the modulo applied here is a modulo 12.

But at Lv.100 1 point in a stat equals 4 EV, thus we have to apply a modulo 3 instead (12/4).

  • Modulo 3 is 0 => remainder of Wanted_EV/12 is 0 => no correction needed.
  • Modulo 3 is 1 => remainder of Wanted_EV/12 is 4 => give 2 Vitamins (+24) and then 2 EV-reducing Berries (-20).
  • Modulo 3 is 2 => remainder of Wanted_EV/12 is 8 => give 4 Vitamins (+48) and then 4 EV-reducing Berries (-40).

Don't forget this is meant as an emergency feature to give the player a mean to EV-train a Lv.100 Pokémon, hence why you are allowed to complicate the feature.

Bonus feature 2: Lower the EV limit from 255 to 252

Yep, we're borrowing that feature from Gen VI.

  • Decompress overlay9_0012.bin.
  • Go to offset 0×EC9C* and change the value FF into FC.
  • Do the same at offset 0×ECA0*.

* Regions' differences

Language		Offset 1		Offset 2

Japanese		0×ECA4			0×ECA8
Korean			0×ECA0			0×ECA4
Others			0×EC9C			0×ECA0

  • Decompress arm9.bin.
  • Go to offset 0×4B948* and change the value FF into FC.
  • Do the same at offset 0×4B94C*.

* Regions' differences

Language		Offset 1		Offset 2

Japanese		0×4B3DC			0×4B3E0
Spanish HG		0×4B940			0×4B944
Korean HG		0×4BA44			0×4BA48
Korean SS		0×4BA3C			0×4BA40
Others			0×4B948			0×4B94C

Edited by MeroMero
Link to comment
Share on other sites

  • 6 years later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...