KazoWAR

A-Save (3rd Generation Save Editor)

272 posts in this topic

Recommended Posts

KazoWAR    10

PKHex now supports gen 3 sav editing!

https://projectpokemon.org/forums/showthread.php?36986-PKHeX-Gen-3-6-SAV-PKM-Editor

After many years of on and (mosty)off work, I am ready to release A-Save, a 3rd Generation Save Editor.

It supports R/S/FR/LG/E, all regions!

A-Save includes a trainer editor, item editor, pokedex editor, party editor, box editor, and a pokemon editor.

Please make backup of save file before testing this program.

Download

v1.27 https://www.mediafire.com/?57u4v69yzpbpvek

v1.27

fixed a bug that caused the program to crash when loading save files that had only been saved once.(no backup data)

v1.26

fixed a bug with the rival name editor.

v1.25

added rival name edit for FRLG

v1.24

changed directory paths from \\ to Path.Combine()

ability no longer locked to PID.

fixed bag item limits between verions 99 RSE 999 FRLG (999 berry and pc all versions)

attempt to auto detect FR/LG base on keywords in the filename "Fire" or "Red" for FR and "Leaf or "Green" for LG, if fails shows prompt.

some things might be broken because this build was built from the source code obtained from decompiling the binary of v1.23, and I had to fix alot of errors it caused. v1.23 is included as a fall back for any new bugs.

v1.23

changed "–" to "-" in the move list.(different characters, the second is the one you get form the keyboard minus key)

v1.22

fixed a minor bug in pokedex. thanks to Zaz for pointing it out to me.

v1.21

another attempt to fix the file not found bug some users are having.

v1.20

changed the way the program opens images.

added check for data folder.

changed berry cap to 999.

autoconvert "ー" and "-" into "–".

v1.19

fixed bugged caused by having over the normal maximum of money/coins/BPs

v1.18

fixed HO-OH auto name.

removed auto size on tab change in pokemon editor, it caused problems with screen being to small on high DPI settings.

v1.17

increased icon update interval.

added EGG (GIFT) to location list.

changed to build with .NET 4.0

v1.16

forgot to hide the dump button after debugging.

v1.15

added initial rtc value roll over.

fixed FR/LG item count bug for version select window.

v1.14

fixed shedinja HP bug.

fixed FR/LG item count bug.

v1.13

tweaked reset rtc values.

v1.12

fixed bug in name edit.

v1.11

tweaked trainer edit ui.

added play time edit.

added rtc edit.

added names for pokemon from all regions, when you click the species name button in name edit, it's name will be set to that based on the language flag of the pokemon.

added autofill trash bytes on name edit.

added coin case in trainer edit.

v1.10

added wurmple evolution in pid generator.

added spinda spot editor in pid generator.

added spinda spot and unown form edit to pokedex editor.

v1.9

main window ui tweaked.

met location list tweaked.

added pokerus to pokemon editor.

v1.8

fixed more pokedex bugs!

v1.7

fixed pokedex edit bug in R/S.

added national dex toggle to pokedex editor.

v1.6

fixed pokedex edit bug in FR/LG.

v1.5

made character table more complete.

text entered that is not found in the character table is replaced with "?".

fixed language flag bug.

added a feature that tries to interpret Bad EGGs instead of having them crash the program.

unhatched pokemon are now shown as eggs.

v1.4

tweaked some text.

v1.3

fixed FR/LG checksum bug that occurred from the R/S checksum fix.

v1.2

fixed party pokemon party data bug.

v1.1

fixed pokemon editor window size.

fixed R/S checksum bug.

v1.0

initial release.

Edited by KazoWAR

Share this post


Link to post
Share on other sites
BlackShark    139

Nice, thanks!

I tested Japanese, French and German Emerald versions. Japanese didn't work, but French and German seems to work. I think Italian and Spanish should work too.

Also I found a bug. Some characters don't show up correct in game.

If I enter an ? in the Editor it will become an À in game.

Edit: Also the Pokedex editor only let you have a total of 211 Pokemon in National Dex (144 in Kanto Dex) if you click "seen all" or "own all".

Share this post


Link to post
Share on other sites
KazoWAR    10
Nice, thanks!

I tested Japanese, French and German Emerald versions. Japanese didn't work, but French and German seems to work. I think Italian and Spanish should work too.

Also I found a bug. Some characters don't show up correct in game.

If I enter an ? in the Editor it will become an À in game.

I will probably need to add support for the other regions character tables.

Share this post


Link to post
Share on other sites

It would be cool if you could teach pokemon xD exclusive moves, simply add a warning saying if you attempt to view the pokemon's moveset the game will freeze.(if it's not too much trouble that is.)

Share this post


Link to post
Share on other sites
codemonkey85    11

Nice job, KazoWAR! I look forward to checking this out when I get home tonight.

If you don't mind saying, what was this coded in?

Share this post


Link to post
Share on other sites
evandixon    295

I like it, but is the Pokémon Edit window displaying like the attached for anyone else? This was taken when scaling was at 125%, but when I disabled scaling for this program, nothing changed.

Capture..PNG

Capture..PNG.c50f7ea9e6999a5b252d2276e8b

Share this post


Link to post
Share on other sites
KazoWAR    10

fixed the window size problem, i use windows classic theme, and sized the windows with that, but it looks like it was too small for the nonclassic theme.

Also the Pokedex editor only let you have a total of 211 Pokemon in National Dex (144 in Kanto Dex) if you click "seen all" or "own all".

What version are you using, I can not replicate this, also can you send me your save file?

also japanese version seems to work perfectly fine, except the lack of Japanese character support. but there was a bug that caused r/s to have corrupt file so it loaded previous save, maybe you used r/s j?

Share this post


Link to post
Share on other sites
BlackShark    139
fixed the window size problem, i use windows classic theme, and sized the windows with that, but it looks like it was too small for the nonclassic theme.

What version are you using, I can not replicate this, also can you send me your save file?

also japanese version seems to work perfectly fine, except the lack of Japanese character support. but there was a bug that caused r/s to have corrupt file so it loaded previous save, maybe you used r/s j?

I used Japanese Emerald, but know it works too.

Pokedex Editor I used on US FireRed, could be a problem of the save file since it's not mine.

Anyway here it is.

Missing Pokemon are

Venusaur

Poliwrath

Scyther

Electabuzz

Magmar

Omastar

Mew

Chikorita

Bayleef

Cyndaquil

Quilava

Furret

Ledyba

Ledian

Ariados

Pichu

Cleffa

Igglybuff

Togetic

Xatu

Ampharos

Azumarill

Politoed

Aipom

Sunkern

Quagsire

Espeon

Murkrow

Slowking

Forretress

Gligar

Granbull

Shuckle

Sneasel

Teddiursa

Slugma

Magcargo

Corsola

Remoraid

Octillery

Delibird

Mantine

Skarmory

Porygon2

Stantler

Smoochum

Elekid

Magby

Entei

Pupitar

Treecko

Grovyle

Sceptile

Torchic

Combusken

Mudkip

Marshtomp

Swampert

Mightyena

Zigzagoon

Linoone

Wurmple

Silcoon

Beautifly

Cascoon

Dustox

Lotad

Lombre

Ludicolo

Seedot

Nuzleaf

Shiftry

Taillow

Swellow

Wingull

Pelipper

Ralts

Kirlia

Gardevoir

Surskit

Masquerain

Shroomish

Breloom

Slakoth

Vigoroth

Slaking

Nincada

Whismur

Loudred

Exploud

Makuhita

Hariyama

Azurill

Nosepass

Skitty

Delcatty

Sableye

Mawile

Aron

Lairon

Aggron

Electrike

Plusle

Minun

Volbeat

Illumise

Roselia

Gulpin

Swalot

Carvanha

Sharpedo

Wailmer

Wailord

Numel

Camerupt

Torkoal

Spoink

Grumpig

Spinda

Trapinch

Vibrava

Flygon

Cacnea

Cacturne

Swablu

Altaria

Zangoose

Seviper

Lunatone

Solrock

Barboach

Whiscash

Corphish

Crawdaunt

Baltoy

Claydol

Lileep

Cradily

Armaldo

Feebas

Milotic

Castform

Castform

Castform

Castform

Kecleon

Shuppet

Banette

Duskull

Dusclops

Tropius

Chimecho

Wynaut

Snorunt

Glalie

Spheal

Sealeo

Walrein

Clamperl

Huntail

Gorebyss

Relicanth

Luvdisc

Bagon

Shelgon

Salamence

Beldum

Metang

Metagross

Regice

Registeel

Latias

Latios

Groudon

Deoxys

Edited by BlackShark
removed attached .sav file

Share this post


Link to post
Share on other sites
KazoWAR    10
I used Japanese Emerald, but know it works too.

Pokedex Editor I used on US FireRed, could be a problem of the save file since it's not mine.

Anyway here it is.

Missing Pokemon are

Venusaur

Poliwrath

Scyther

Electabuzz

Magmar

Omastar

Mew

Chikorita

Bayleef

Cyndaquil

Quilava

Furret

Ledyba

Ledian

Ariados

Pichu

Cleffa

Igglybuff

Togetic

Xatu

Ampharos

Azumarill

Politoed

Aipom

Sunkern

Quagsire

Espeon

Murkrow

Slowking

Forretress

Gligar

Granbull

Shuckle

Sneasel

Teddiursa

Slugma

Magcargo

Corsola

Remoraid

Octillery

Delibird

Mantine

Skarmory

Porygon2

Stantler

Smoochum

Elekid

Magby

Entei

Pupitar

Treecko

Grovyle

Sceptile

Torchic

Combusken

Mudkip

Marshtomp

Swampert

Mightyena

Zigzagoon

Linoone

Wurmple

Silcoon

Beautifly

Cascoon

Dustox

Lotad

Lombre

Ludicolo

Seedot

Nuzleaf

Shiftry

Taillow

Swellow

Wingull

Pelipper

Ralts

Kirlia

Gardevoir

Surskit

Masquerain

Shroomish

Breloom

Slakoth

Vigoroth

Slaking

Nincada

Whismur

Loudred

Exploud

Makuhita

Hariyama

Azurill

Nosepass

Skitty

Delcatty

Sableye

Mawile

Aron

Lairon

Aggron

Electrike

Plusle

Minun

Volbeat

Illumise

Roselia

Gulpin

Swalot

Carvanha

Sharpedo

Wailmer

Wailord

Numel

Camerupt

Torkoal

Spoink

Grumpig

Spinda

Trapinch

Vibrava

Flygon

Cacnea

Cacturne

Swablu

Altaria

Zangoose

Seviper

Lunatone

Solrock

Barboach

Whiscash

Corphish

Crawdaunt

Baltoy

Claydol

Lileep

Cradily

Armaldo

Feebas

Milotic

Castform

Castform

Castform

Castform

Kecleon

Shuppet

Banette

Duskull

Dusclops

Tropius

Chimecho

Wynaut

Snorunt

Glalie

Spheal

Sealeo

Walrein

Clamperl

Huntail

Gorebyss

Relicanth

Luvdisc

Bagon

Shelgon

Salamence

Beldum

Metang

Metagross

Regice

Registeel

Latias

Latios

Groudon

Deoxys

Thanks, got it fixed now.

Share this post


Link to post
Share on other sites
BlackShark    139

Thanks!

Unfortunately the same bug appears on Ruby/Sapphire.

Emerald, FireRed and LeafGreen are working fine.

Edited by BlackShark
removed attached .sav file

Share this post


Link to post
Share on other sites
KazoWAR    10
Thanks!

Unfortunately the same bug appears on Ruby/Sapphire.

Emerald, FireRed and LeafGreen are working fine.

fixed!

keep the bug reports coming!!

Share this post


Link to post
Share on other sites
BlackShark    139

Another bug:

The Pokedex editor is corrupting the Poke Balls bag.

If I hit "Seen All" and "Own All" my bag looks like this.

55shslcg.png

If I only click "Seen All" it looks similar but there are also some berries added into that bag.

This happened in Ruby, Sapphire and Emerald. FireRed and LeafGreen are fine.

It already happened in that Ruby save file above but I didn't notice.

Share this post


Link to post
Share on other sites
KazoWAR    10
Another bug:

The Pokedex editor is corrupting the Poke Balls bag.

If I hit "Seen All" and "Own All" my bag looks like this.

55shslcg.png

If I only click "Seen All" it looks similar but there are also some berries added into that bag.

This happened in Ruby, Sapphire and Emerald. FireRed and LeafGreen are fine.

It already happened in that Ruby save file above but I didn't notice.

ok fixed.

Share this post


Link to post
Share on other sites
jm-plata    11

-All Colosseum/XD met locations are incorrect; xD Vaporeon (see pic), location description in NGC must be "from dad" and GBA description must be "meet in a trade". The locations in Colosseum/XD (NGC) are very complicated because are the same values of GBA locations.

-A suggestion: In the "Met window", Name must be OT and Import From Save button must be OT/ID Import From Save.

-Pokerus status & Ribbons are mising in pokemon edit.

-In 3rd Gen all Eggs are meet at Level 5 so meet at Level 0 must be EGG Lv.5.

-A error in Met location options: BIRT ISLAND (RFLG).

Some correct locations:

-UNDERGROUND PATH (0x81) = Underground Path (Route 5-6)

-UNDERGROUND PATH (0x82) = Underground Path (Route 7-8)

-ALTERING CAVE (0xD2) = Altering Cave (E)

-UNDERWATER (0xCC) = Underwater (Marine Cave 1)

-UNDERWATER (0xCE) = Underwater (Marine Cave 2)

-UNDERWATER (0xCF) = Underwater (Marine Cave 3)

-UNDERWATER (0xD0) = Underwater (Marine Cave 4)

-ROUTE 4 (0x63) = Route 4 (PC)

-ROUTE 10 (0x64) = Route 10 (PC)

-fateful encounter (0xFE) = in a trade (in-game trade GBA)

-fateful encounter (0xFD) = An odd EGG obtained

-ZAFARI ZONE (0x88) = Zafari Zone (Kanto)

-ZAFARI ZONE (0x39) = Zafari Zone (Hoenn)

-VICTORY ROAD (0x46) = Victory Road (Hoenn)

-VICTORY ROAD (0x84) = Victory Road (Kanto)

Congrats for your work!!!

xD Vaporeon

9503859205_b70e900d83_o.png

Edited by jm-plata

Share this post


Link to post
Share on other sites
Thunder    13

Finally, something other then Encyclopedia Pokemon! I've been waiting for something like this forever. Keep up the great work! :D

Share this post


Link to post
Share on other sites
BlackShark    139

Nice updates!

If I changed a Pokemon with long species name (e.g. Sceptile) to one with less characters in it's name (e.g. Abra) the old bytes from the previous name remain there. Shouldn't they become FF?

sfik3c.jpg5nvx46.jpg

Share this post


Link to post
Share on other sites
evandixon    295
Nice updates!

If I changed a Pokemon with long species name (e.g. Sceptile) to one with less characters in it's name (e.g. Abra) the old bytes from the previous name remain there. Shouldn't they become FF?

sfik3c.jpg5nvx46.jpg

Not if you're nicknaming. Only the first byte after the characters you want is FF. That's how trash bytes work. The game makes as few writes as possible.

In this case, it should erase the characters afterward with either FF or 00.

Share this post


Link to post
Share on other sites
BlackShark    139
Not if you're nicknaming. Only the first byte after the characters you want is FF. That's how trash bytes work. The game makes as few writes as possible.

In this case, it should erase the characters afterward with either FF or 00.

Oh, I didn't know.

Thanks for explanation.

Share this post


Link to post
Share on other sites
KazoWAR    10

After some tests, it seems at creation any extra bytes are random trash bytes. upon evolution all extra bytes are replaced with 0x00. if nicknamed all extra bytes are replaced with 0xFF, even if nicknamed back to the original name. So I will have it fill remaining bytes with 0x00 if the entered name matches the Pokemon's name, if it does not match then fill with 0xFF, and of course, the user will still have the ability to manually set any of the bytes if they wish for any non evolved Pokemon.

Share this post


Link to post
Share on other sites
decymin    11

Wow, very cool! I have been waiting for something like this for ages. :)

One question: Can you use this to re-enable time-based events in save files to use on GBA games? I have been trying to get my GBA games to work properly again after replacing the battery without having to restart the game, and while there is lots of information on all kinds of things you can change by manipulating your save file (after you have sent it to your PC), I haven't found anything so far on how to simply tell the game that time-based events should work again, now that the battery is working again.

I guess you have invested lots of time into understanding the save file structure. Do you know what one would have to do to tell the game that time-based events should work again? If your save-game editor could also take care of this (or if you could tell me what to change in the save file hex code), it would be amazing.

(When I transfer my save file from the GBA cartridge to the PC and use it with Visual Boy Advance with the real-time clock running, it works fine. But when I then transfer and use the same save file on my GBA game, it doesn't work – the clock is running but berries don't grow etc.)

Share this post


Link to post
Share on other sites
KazoWAR    10
Wow, very cool! I have been waiting for something like this for ages. :)

One question: Can you use this to re-enable time-based events in save files to use on GBA games? I have been trying to get my GBA games to work properly again after replacing the battery without having to restart the game, and while there is lots of information on all kinds of things you can change by manipulating your save file (after you have sent it to your PC), I haven't found anything so far on how to simply tell the game that time-based events should work again, now that the battery is working again.

I guess you have invested lots of time into understanding the save file structure. Do you know what one would have to do to tell the game that time-based events should work again? If your save-game editor could also take care of this (or if you could tell me what to change in the save file hex code), it would be amazing.

(When I transfer my save file from the GBA cartridge to the PC and use it with Visual Boy Advance with the real-time clock running, it works fine. But when I then transfer and use the same save file on my GBA game, it doesn't work – the clock is running but berries don't grow etc.)

I will see what I can do.

Share this post


Link to post
Share on other sites
decymin    11
I will see what I can do.

Thanks so much! <3

According to the (not really informative) replies in this thread, VBA messes up the time in save files when you transfer them to your cartridge. I checked, it actually changes things but I have no idea which things exactly.

If it helps, I could upload different versions of a save file I used to experiment and look at the hex code. I started a new game, then copied that save file and did some things with it (always using the 1st save file to do something else):

  • a new game (cartridge)
  • a 2nd save in that new game with the battery on (cartridge)
  • a 2nd save in that new game with the battery off (cartridge)
  • a 2nd save in that new game with the real-time clock on (VBA)
  • a 2nd save in that new game with the real-time clock off (VBA)

The 2 '2nd save' files from the cartridge only differ in 2 hex locations. The 2nd save file with the real-time clock off from the VBA also has changes in 2 hex locations when compared to the battery-off cartridge save. The 2nd save file from the VBA with the real-time clock on has 19 or 20 differences when compared to the cartridge save files which I guess is what 'messes up' the time events when playing on the cartridge.

However, the time-based events didn't work right after replacing the battery (with no VBA influence at all) either. So even if I say that I just need to not use VBA at all, I still need a way to make the game re-enable time-based events as it won't do it on its own.

Share this post


Link to post
Share on other sites
jm-plata    11

I have all correct locations for Colosseum/XD if you want. But need implement a new system like PokeBoxGBA, in this take the old values +255(0xFF) for make a new values for those locations (i.e. 1+255= 256 new value (0x100)). Besides the Colosseum locations aren't the same as for xD, i.e. Outskirt Stand (Colosseum)/distant land (xD) Location Value: 3 +255= 258 (0x102) new value.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now