Jump to content

PWT Download Tournaments


Kaphotics

Recommended Posts

Ok, I've toyed a little more with the 0x1C values. They're how the game rigs it to go against certain opponents.

Recap of all the 0x1C's:

Japan Nationals
02 03 00 00 
02 03 00 00 
02 03 00 00 
01 01 00 00 
01 01 00 00 
01 01 00 00 
01 01 00 00

VGC 2012
02 05 00 00 - Required Finalist
02 04 00 00 - Required Semifinalist 
02 03 00 00 - Required Whenever
02 03 00 00 - Required Whenever
01 01 00 00 
01 01 00 00 
01 01 00 00

Legendary Rotation
02 03 00 00 - Required Whenever
02 03 00 00 - Required Whenever
00 02 00 00 - Required First
01 01 00 00 - Not Paired
01 01 00 00 - Not Paired 
01 01 00 00 - Not Paired 
01 01 00 00 - Not Paired

Lance
02 05 10 00 - Required Finalist
02 03 1F 00 - Required Whenever 
02 03 18 00 - Required Whenever
02 03 1E 00 - Required Whenever
01 01 00 00 
01 01 00 00 
00 01 00 00

Gathered Gym
02 05 16 00 - Required Finalist
02 05 21 00 - Required Finalist 
02 05 29 00 - Required Finalist
02 05 35 00 - Required Finalist
01 01 00 00 
01 01 00 00 
01 01 00 00

ROM Masters
02 05 00 00 
02 04 00 00 
02 03 00 00 
02 02 00 00 
01 01 01 00 
01 01 02 00 
00 01 00 00

ROM Seniors
02 00 00 00 
02 01 00 00 
02 02 00 00 
02 03 00 00 
01 05 01 00 
01 05 02 00 
00 05 00 00

ROM Juniors
02 05 00 00 
02 04 00 00 
02 03 00 00 
02 03 00 00 
01 01 01 00 
01 01 02 00 
00 02 00 00

Battle of Legendary Singles
02 03 19 00 
02 03 1C 00 
02 03 2A 00 
02 03 30 00 
01 01 00 00 
01 01 00 00 
01 01 00 00

In summary:

XX YY ZZZZ * 7 participants (you are the 8th!)

XX = PKM Data Setting
 02 - Defined within .pwt
 01 - Defined randomly within narc 2
 00 - Defined randomly within narc 1
Note: I think the difference between 01 and 00 is just the NARC it grabs from. There's 2 that contain sets; the game would pick randomly.

YY = Bracket Setting
 00 - ??
 01 - Filler Trainer
 02 - Possible First Battle
 03 - Possible Whenever battle
 04 - Semifinalist Battle
 05 - Finalist Battle
Note: If there are multiple entries with the same battle setting, the game randomly decides which ones you will face.
Essentially the game just tiers them up ensuring the highest settings are faced last, and all defined battles happen.

ZZZZ = Trainer Override
 As I mentioned above, there's certain #'s which correspond to trainers.
 I listed the XX=02 (Special/Defined Trainer) override values, I'd bet XX=01/00 are crappy trainers and not of interest.

The 0x1C values from previous tournaments can be used as pre-sets for certain common scenarios.

Link to comment
Share on other sites

For the sake of editing, 3D5/3D6/3D7 should be set by the player, thus be 0. The only thing that isn't set is the Announcer Text, which can also be set to 0 since it calls the "Trainer Extra" (at the time I didn't know its function).

So essentially all of these could be set to 0 and defined by the Editor.

Well, the preset text has one extra perk, namely that it's automatically translated to all other languages (not sure why you'd do that since the tournament name/description/ruleset is in English but hey, the option is there). I think I'll check for presets when the text is being saved and put a combobox next to the edit box for choosing presets, once I get around to working on the editor a bit more (been focusing on actually playing the game the past week). That would also be helpful for people who don't really care/can't think of anything.
Link to comment
Share on other sites

Presenting (the first?) custom tournament...

2011vgcrules.png2011vgcbrackets.png

2011 VGC World Champion Challenge.pwt

Battle the Champions from the Pokémon World Championships in 2011!

Steven, Cynthia, Blue and myself are not battleable, just the 3 champions ;)

edit: video of the tournament (with some funny business done by me)

[video=youtube;OSnt5lwDlpo]

Edited by Kaphotics
Link to comment
Share on other sites

0x07 = Language

0x1	 日本語 (Japan)
0x2	 English (US/UK/AU)

Haven't seen these yet, but theorized:
0x3	 Français (France/Québec)
0x4	 Italiano (Italy)
0x5	 Deutsch (Germany)
0x7	 Español (Spain/Latin Americas)
0x8	 한국어 (South Korea)

0x08-0x09 = Tournament ID

Pretty much the same as Wondercard ID, I guess it would ensure no current duplicate downloaded tournaments. It's like this for Live/WiFi tournaments. Check the ID on the Junior/Senior tournament, 10001 & 10002.

00001 - 2012 Japan Nationals
00002 - Challenge the Champion, Lance!
00003 - Gathered! Gym Leaders!
00004 - The Legendary Rotation Battle!
00005 - The Battle of Legendary Pokémon!
10001 - Junior Division Challenge
10002 - Senior Division Challenge
10004 - Junior Division Challenge (Fixed)

Non-Canon
00001 - WCS2011 junior(English)
00002 - WCS2011 Senior(English)
00003 - WCS2011 master(English)
00004 - WCS2011 junior(English)★
00005 - WCS2011 Senior(English)★
00006 - WCS2011 master(English)★

==

I think 0x0 might be BP rewarded. The rest might be for custom rewards instead of BP (and instead of shards on loss). May test later. nope. didn't see any effect

Link to comment
Share on other sites

I'm starting to think it's impossible to change the rewards. I set all the variables that we don't know about yet (first 7 bytes + language byte, 0x26E, last 5 bytes of a trainer) to 0xFF, and I still got 2 BP in the end EDIT: and regular Shards.

EDIT2:

...

0x1C Book Girl (Female)

0x1D Maid (Female)

there's more...

Sometimes the ones after schoolkid don't work... dunno why yet.

Looks like there are no more regular Trainer sprites you can use, the game defaults to 0 for values >= 0x1E.

EDIT3: The pre-set intro messages change depending on when you fight the trainer in the tournament. EDIT4: Oh, you already listed those. Didn't see the buttons at the bottom.

EDIT5:

XX = PKM Data Setting

02 - Defined within .pwt

01 - Defined randomly within narc 2

00 - Defined randomly within narc 1

Note: I think the difference between 01 and 00 is just the NARC it grabs from. There's 2 that contain sets; the game would pick randomly.

It turns out that 0x03 is also a valid value. Using it forces the game to use the special trainer override value (shifted by one, so 0 = Cheren, etc.) and forces the pre-set battle message. It also makes the game use pre-set teams, but I'm not sure where they're being taken from. When I tried to fight Marlon, he sent out Golbat, Zangoose, Watchog and Klink.

EDIT6: The 16-bit value at 0x3DC in the trainer data seems to be some kind of bitfield (though only the lower 4 bits appear to be used) that's apparently used during battle. The 0x8 bit is shifted 4 places to the left (so 0xF results in 0x87).

Edited by Prof. 9
Link to comment
Share on other sites

  • 2 weeks later...

Is there any way to edit the non downloable tournaments? I'm not sure if anyone is working on creating tournaments; I had an idea about making a tourney which has the rivals/playable characters as the participants (Lucas, Dawn, Hilbert, Hilda, Nate, Rosa, Barry, Hugh) just a random thought.

Link to comment
Share on other sites

Is there any way to edit the non downloable tournaments? I'm not sure if anyone is working on creating tournaments; I had an idea about making a tourney which has the rivals/playable characters as the participants (Lucas, Dawn, Hilbert, Hilda, Nate, Rosa, Barry, Hugh) just a random thought.

I've parsed their teams, they do reside in the narcs. In the General ROM info thread I give their location.

/a/2/5/3 ********* pwtpoke2 - 1000 files, first bunch are for PWT (second set)

/a/2/5/4 ********* pwttr1, 68 files - world tournament trainer pkm choices 1v1

/a/2/5/5 ********* pwttr6, 68 files - world tournament trainer pkm choices 6v6

/a/2/5/6 ********* pwtpoke - world tournament pkm sets (first set)

/a/2/5/7 ********* 1000 files, pokemon sets pretty much filled ~still diff (subway?)

/a/2/5/8 ********* pwt vgc top4 event, relic of dev testing which is unaccessible but I converted it here.

Problem is, I'm pretty sure that modding the underlying tournament structure would require edits to the overlays. No idea which one; that's the issue. If you want, you can just replace their sprites/text and just swap up which teams they choose such that you get the lineup you desire for your hack.

Might as well just make a PWT Download using alder and such, then change the sprites and text of the special trainers.

Edited by Kaphotics
Link to comment
Share on other sites

Made a teambuilder in excel.

Spits out a 6*0x34 long string which you can directly overwrite an existing entire team with. The text edits/brackets/etc are simple enough to do quickly in hex (for now) :P

https://dl.dropbox.com/u/12206225/pwt-teambuilder.xlsx

hacked%20pwt.pnghackedpwt2.png

Edit: fixed shiny flag not being set. Abilities can't be illegal, the game has to have one that is legal for it...

Edited by Kaphotics
Link to comment
Share on other sites

Nice work. I should get around to finishing that editor of mine; can't really think of a good way to handle trainer sprite/name/class/message selection in the GUI...

I noticed that 3 is also a valid value for the PKM data setting.

Based on the mode value (XX) and the special Trainer value (ZZ), two variables are cached:

Mode 0:

0x00 = 0x44 + rand(10)

0x01 = 0

Mode 1:

0x00 = 0x4E + rand(10)

0x01 = 0

Mode 2:

0x00 = Special Trainer value

0x01 = 0xF1 + trainerNumber (0-6)

Mode 3:

0x00 = Special Trainer value

0x01 = 0

note: rand(10) takes numbers 0-9 in a random order, so it doesn't generate any duplicates

The game then looks at 0x01 first. If it's 0xFF, it takes the player's team and continues. If it's 0xF1, 0xF2, 0xF3 or 0xF4, it looks at the special Trainer value; if that's zero, it takes the Trainer sprite value in the trainer's data.

Link to comment
Share on other sites

  • 3 weeks later...

Awesome tool, thanks for your work!

I have a lil question, based on some of the options on your tool. Is there a way to edit the rules of a specific tournament already included in game (I mean, not the downloadable ones)? For instance, to make the Champion's single tournament be a 6v6 battle? I don't know why the preference from the devs to make single battles 3v3 (possibly time per battle, who knows), but it'd be really cool to be able to edit the rules for certain tournaments like world leaders and champions to make them full singles/doubles 6v6 battles.

Link to comment
Share on other sites

  • 2 weeks later...

It looks like the 2012 Masters Division Challenge (ENG10003) was silently updated; Abel's Metagross had his Ice Beam changed to Ice Punch and the : was removed from the name to make it distinct from the old one.

I've gathered all the PWT files I had (most from this thread, some Italian ones I found on GBARL) and put them in a ZIP with ID tags and the correct names. You can download that here: http://www.mediafire.com/?2wj2bv0jhyr6811

Work on PWTEditor has stalled, I've been busy with other stuff and I'm not really satisfied with how it's turned out so I'll be rewriting parts of it sometime in the future. For what it is though (a PWT extractor/inserter) it should do the trick just fine.

Link to comment
Share on other sites

I've done some editing and I've added a custom tournament, and it's working fine. Thanks again for all these findings!

I've wondering also, from what I've read in the thread and modified in the .pwt files; there's 4 trainers called up and whose teams can be included in the file structure. The other 3 lines can also be edited to change the sprites of the other participants, so you can change the sprites of all particpants on a download tournament. There's only 4 sets of pokemon teams included in the file, however. Is there a way to add the 3 extra team sets in order to not only have all the sprites edited but also all 7 custom pokemon teams? It wouldn't make sense for all trainer info to be changeable and not have a defined team for each trainer. There should be some variable in the file structure before the beggining of the pokemon and trainer data blocks that sets the amount of pokemon sets included in the file, I bet. That'd be the last piece of info needed in order to make fully customizable download PWTs.

Link to comment
Share on other sites

Well, none of the currently released tournaments have had more than 4 trainers as far as I know so I doubt there is such a variable. Here's a compilation of all the stuff that's been figured out so far, I don't think I've posted it here yet:

Tournament (0x1210 bytes):
0x0000: Tournament settings (0x274 bytes)
0x0274: Trainer 1 (0x3E0 bytes)
0x0654: Trainer 2 (0x3E0 bytes)
0x0A34: Trainer 3 (0x3E0 bytes)
0x0E14: Trainer 4 (0x3E0 bytes)
0x11F4: Bracket (0x1C bytes)

Trainer data (0x3E0 bytes):
0x000: Pokémon 1 (0x34 bytes)
0x034: Pokémon 2 (0x34 bytes)
0x068: Pokémon 3 (0x34 bytes)
0x09C: Pokémon 4 (0x34 bytes)
0x0D0: Pokémon 5 (0x34 bytes)
0x104: Pokémon 6 (0x34 bytes)
0x138: Trainer settings (0x2A8 bytes)

TOURNAMENT SETTINGS:
0x000 = ?
0x001 = ?
0x002 = ?
0x003 = ?
0x004 = ?
0x005 = ?
0x006 = ?
0x007 = Language (None, Japanese, English, French, Italian, German, Spanish, Korean)
0x008 = Tournament ID (16-bit)
0x00A = Tournament Name (37 characters)
0x054 = Tournament Description (75 characters)
0x0EA = Battle Rules (111 characters)
0x1C8 = Minimum amount of Pokémon required
0x1C9 = Maximum amount of Pokémon allowed (also the amount the opponent will use)
0x1CA = Allowed Level (8-bit)
0x1CB = Level style (0x00 = normal, 0x01 = minimum, 0x02 = maximum, 0x03 = scale down, 0x04 = set, 0x05 = scale up)
0x1CC = Maximum total party level (16-bit)
0x1CE = Allow duplicate Pokémon (1 bit)
0x1CF = Allow duplicate items (1 bit)
0x1D0 = Banned Pokémon (656 bits, 1 bit per species)
0x222 = Banned Items (608 bits, 1 bit per item)
0x26E = ? (always 0?)
0x26F = Battle Type (2 bits) (Single Battle, Double Battle, Triple Battle, Rotation Battle)
0x270 = Use World Champion battle music instead of PWT Finals battle music (1 bit)
0x271 = Allowed Type (8-bit) (if 0x11, all types are allowed)
0x272 = Banned Move (single 16-bit value; only 1 move can be banned (Sky Drop?)?)

TRAINER DATA:
0x138 = Name (16 characters)
0x158 = Class (22 characters)
0x184 = Custom intro message (74 characters)
0x218 = Custom loss message (74 characters)
0x2AC = Custom win message (74 characters)
0x340 = Unknown message (74 characters)
0x3D4 = Sprite
0x3D5 = Pre-set intro message
0x3D6 = Pre-set loss message
0x3D7 = Pre-set win message
0x3D8 = In-battle loss message
0x3D9 = In-battle win message
0x3DA = Pre-battle Announcer message
0x3DB = ?
0x3DC = ? (16-bit) (max: 0xF?)
0x3DE = ?
0x3DF = ?

BRACKET:
0x00 = Trainer 1 bracket data (4 bytes)
0x04 = Trainer 2 bracket data (4 bytes)
0x08 = Trainer 3 bracket data (4 bytes)
0x0C = Trainer 4 bracket data (4 bytes)
0x10 = Trainer 5 bracket data (4 bytes)
0x14 = Trainer 6 bracket data (4 bytes)
0x18 = Trainer 7 bracket data (4 bytes)

BRACKET DATA:
0x0 = Pokémon data source (0 = random from set 1, 1 = random from set 2, 2 = from tournament data, 3 = ?)
0x1 = Trainer Rank
0x2 = Special Trainer (16-bit)

Link to comment
Share on other sites

I think there are 4 text messages total and each can be assigned to one of these types of dialogs:

Introduction, pre-battle dialog, winning dialog (in battle), losing dialog (in battle), winning dialog (after battle), losing dialog (after battle).

Link to comment
Share on other sites

Here they are! :)

Edit:

챔피언 목호에게 도전하자!

Challenge the Champion Lance!

모여라! 체육관 관장과 배틀이다!

Gathered! Gym Leader!

전설의 로테이션배틀이다!

The Legendary Rotation Battle!

마스터 세계강자에게 도전하자!

2012 Junior Division Challenge

I messed something up, sorry

This tournament is 2012 Master Division Challenge!

Junior Division is here

Korean Tournamen&#116.zip

Korean Tournament.zip

Edited by BlackShark
wrong order of korean 2012 Division Challenges
Link to comment
Share on other sites

Thanks Kaphotics and Prof. 9 for their PWT compiled research, I have mixed it with some of my research and built a working PWT editor with trainer and pokemon editing and I have add it to my program, however since I cannot post it here, I'm going to make a separate version and post it here later...

TRAINER DATA:

0x138 = Name (16 characters)

0x158 = Class (22 characters)

0x184 = Custom intro message (74 characters)

0x218 = Custom loss message (74 characters)

0x2AC = Custom win message (74 characters)

0x340 = Unknown message (74 characters)

0x3D4 = Sprite

0x3D5 = Pre-set intro message

0x3D6 = Pre-set loss message

0x3D7 = Pre-set win message

0x3D8 = In-battle loss message

0x3D9 = In-battle win message

0x3DA = Pre-battle Announcer message

0x3DB = ?

0x3DC = ? (16-bit) (max: 0xF?)

0x3DE = ?

0x3DF = ?

[/code]

0x340 = Custom announcer message (74 characters)

Custom messages are used if pre-set messages values are zero

I edited the unknown bytes however I don't see any change...

Structure of PWT-DLC PKMs:

0x0-0x1: Species

0x2-0x17: 11 character namefield (after names, they are usually 0xFFFF aka terminators, not characters)

0x18-0x19: Held Item

0x1A: Shiny Flag (00 or 01) ~ unconfirmed, hasn't been used except for the ROM tournament

0x1B: Ability

0x1C: HP EV

0x1D: ATK EV

0x1E: DEF EV

0x1F: SPE EV

0x20: SPA EV

0x21: SPD EV

0x22-0x23: Move 1

0x24-0x25: Move 2

0x26-0x27: Move 3

0x28-0x29: Move 4

0x2A: gender? ~ unconfirmed. may just be bitflags for stuff

0x2B: Nature

0x2C-0x2F: IVs (stored same way as pkms)

0x30: ??? always 0. might be secondary sparkle like N's

0x31: Ball

0x32: Current Level

0x33: Happiness

0x30 = Alternate forms (bit 0-4)

Link to comment
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
×
×
  • Create New...