Glitch City Laboratories Archives

Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.

You can join Glitch City Research Institute to ask questions or discuss current developments.

You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.

Wiki Discussion

Merge non-English Western ItemDex pages with their English counterparts? - Page 1

Merge non-English Western ItemDex pages with their English counterparts?

Posted by: bbbbbbbbba
Date: 2019-12-05 18:37:57
Western localizations of Generation I games are pretty similar to each other, much more so than compared to the original Japanese game. As a result, glitch items usually have similar names and/or behaviors. For example, Spanish P8 is equivalent to English 9F both in name and in function. Differences can mostly be explained by text pointers being different. For example, 3F takes the high byte of its effect pointer from a low byte of a text pointer, which means that its effect is likely to be different on all Western versions, as exemplified by French 2eme Etage.

Given this, how about we merge all the other Western ItemDexes (which are likely to remain incomplete forever otherwise) into the English ItemDex? The advantages would be:


We can still add a section below the ItemDex pages to note the language versions where the item is confirmed to have the same behavior, although it should be understood that all items can be assumed to have the same behavior unless noted otherwise. And I guess if a language-specific glitch item is really notable in a non-English game, they can still have their own page, although I doubt there would be a need for such a special case. (ItemDex pages are generally not very long.)

Re: Merge non-English Western ItemDex pages with their English counterparts?

Posted by: Krys3000
Date: 2019-12-06 01:37:17
Hello,

We did a ItemDex for PRAMA lately (https://www.prama-initiative.com/index.php?page=glitchdex-objets)
I think there were several differences between French and English games, but I'm not sure how much, and what are the causes. Anyway if you want to do that, our ItemDex may provide some help.

If only there was a specialized website for all different localizations GCL could just point to them  :P

Re: Merge non-English Western ItemDex pages with their English counterparts?

Posted by: bbbbbbbbba
Date: 2019-12-06 13:30:59
One thing I vaguely want to do is to have a table of glitch item effect pointers (ACE or not), and color code it into opcodes, constant operands, pointers, etc. and/or put it side by side with the disassembly (iirc it should fall entirely within the function ItemUseBall). This should illustrate why many glitch items are the way they are, and why they might be different on different language versions.

Re: Merge non-English Western ItemDex pages with their English counterparts?

Posted by: Parzival
Date: 2019-12-06 22:26:10

One thing I vaguely want to do is to have a table of glitch item effect pointers (ACE or not), and color code it into opcodes, constant operands, pointers, etc. and/or put it side by side with the disassembly (iirc it should fall entirely within the function ItemUseBall). This should illustrate why many glitch items are the way they are, and why they might be different on different language versions.
that'd be kinda cool, actually

Re: Merge non-English Western ItemDex pages with their English counterparts?

Posted by: Sherkel
Date: 2019-12-08 13:36:49
While I was thinking for the sake of simplicity it would help to keep them separate, so that there's "one item per page" so to speak…I'm in favor of this. This is an English-language reference first and foremost, and the majority of items in other localizations still don't have their own pages yet.

What would look good would be something like a section on RB:094 with

    [li]The Spanish equivalent of this item is P8 (link)[/li]
    [li]The French equivalent of this item is…[/li]
    [li]The Italian equivalent of this item is…[/li]



One thing I vaguely want to do is to have a table of glitch item effect pointers (ACE or not), and color code it into opcodes, constant operands, pointers, etc. and/or put it side by side with the disassembly (iirc it should fall entirely within the function ItemUseBall). This should illustrate why many glitch items are the way they are, and why they might be different on different language versions.
This would be excellent too.

Re: Merge non-English Western ItemDex pages with their English counterparts?

Posted by: bbbbbbbbba
Date: 2019-12-08 16:07:43

What would look good would be something like a section on RB:094 with

    [li]The Spanish equivalent of this item is P8 (link)[/li]
    [li]The French equivalent of this item is…[/li]
    [li]The Italian equivalent of this item is…[/li]



What I am afraid is that, with some of the items that behave mostly the same across different language versions, this would look as ridiculous as "The French equivalent of this Pokémon is Bulbizarre (link)" on Bulbapedia's Bulbasaur page…

Re: Merge non-English Western ItemDex pages with their English counterparts?

Posted by: Sherkel
Date: 2019-12-08 22:47:35
Right, not linking to separate pages, sorry. That's the opposite of what we were both suggesting. Just a section with a list.

Re: Merge non-English Western ItemDex pages with their English counterparts?

Posted by: bbbbbbbbba
Date: 2019-12-09 06:41:27


One thing I vaguely want to do is to have a table of glitch item effect pointers (ACE or not), and color code it into opcodes, constant operands, pointers, etc. and/or put it side by side with the disassembly (iirc it should fall entirely within the function ItemUseBall). This should illustrate why many glitch items are the way they are, and why they might be different on different language versions.
that'd be kinda cool, actually

I did a quick side-by-side in my text editor for R/B. There isn't that much code to go through, because items that are 128 apart (except TMs/HMs) share the same effect pointer, which means as far as effect pointer goes, RB:000 is the same as RB:128, and RB:129 is the same as RB:001 (Master Ball, although it just jumps to ItemUseBall and does not have a 100% catch rate because the type of ball is checked inside ItemUseBall), etc.
B2F    |  57FA  |  FA 57 D0  |      ld a, [wIsInBattle]  ; D057
B1F    |  A7D0  |            |
      |        |  A7        |      and a
1F    |  81CA  |  CA 81 65  |      jp z, ItemUseNotTime  ; 6581
2F    |  3D65  |            |
      |        |  3D        |      dec a
3F    |  8BC2  |  C2 8B 65  |      jp nz, ThrowBallAtTrainerMon  ; 658B
4F    |  FA65  |            |
      |        |  FA 5A D0  |      ld a, [wBattleType]  ; D05A
5F    |  D05A  |            |
6F    |  283D  |  3D        |      dec a
      |        |  28 0F    |      jr z, .canUseBall  ; +15
7F    |  FA0F  |            |
      |        |  FA 63 D1  |      ld a, [wPartyCount]  ; D163
8F    |  D163  |            |
9F    |  06FE  |  FE 06    |      cp PARTY_LENGTH  ; 6
10F    |  0820  |  20 08    |      jr nz, .canUseBall  ; +8
11F    |  80FA  |  FA 80 DA  |      ld a, [wNumInBox]  ; DA80
B4F    |  FEDA  |            |
      |        |  FE 14    |      cp MONS_PER_BOX  ; 20
w m    |  CA14  |            |
      |        |  CA B1 65  |      jp z, BoxFullCannotThrowBall  ; 65B1
ws m  |  65B1  |            |
      |        |            |  .canUseBall
vtm    |  EAAF  |  AF        |      xor a
      |        |  EA 1C D1  |      ld [wCapturedMonSpecies], a  ; D11C
'dm    |  D11C  |            |
m      |  5AFA  |  FA 5A D0  |      ld a, [wBattleType]  ; D05A
w 'lm  |  FED0  |            |
      |        |  FE 02    |      cp BATTLE_TYPE_SAFARI  ; 2
fm    |  2002  |            |
      |        |  20 04    |      jr nz, .skipSafariZoneCode  ; +4
m      |  2104  |            |
      |        |            |  .safariZone
      |        |  21 47 DA  |      ld hl, wNumSafariBalls  ; DA47
-gm    |  DA47  |            |     
#      |  CD35  |  35        |      dec [hl]
      |        |            |  .skipSafariZoneCode
      |        |  CD ED 3D  |      call RunDefaultPaletteCommand  ; 3DED
é      |  3DED  |            |
il    |  433E  |  3E 43    |      ld a, $43
Lg-    |  1EEA  |  EA 1E D1  |      ld [wPokeBallAnimData], a  ; D11E
-g    |  CDD1  |            |
      |        |  CD 25 37  |      call LoadScreenTilesFromBuffer1  ; 3725
QGnSI  |  3725  |            |
GnSI  |  E821  |  21 E8 65  |      ld hl, ItemUseText00  ; 65E8
Q;MP-  |  CD65  |            |
      |        |  CD 49 3C  |      call PrintText  ; 3C49
;MP-  |  3C49  |            |
(116)  |  3A21  |  21 3A 58  |      ld hl, IsGhostBattle  ; 583A
(117)  |  0658  |            |
      |        |  06 0F    |      ld b, BANK(IsGhostBattle)  ; 0F
(118)  |  CD0F  |            |
      |        |  CD D6 35  |      call Bankswitch  ; 35D6
(119)  |  35D6  |            |
(120)  |  1006  |  06 10    |      ld b, $10
(121)  |  01CA  |  CA 01 58  |      jp z, .setAnimData  ; 5801
(122)  |  FA58  |            |
      |        |  FA 5A D0  |      ld a, [wBattleType]  ; D05A
(123)  |  D05A  |            |
(124)  |  203D  |  3D        |      dec a
      |        |  20 0F    |      jr nz, .notOldManBattle  ; +15
      |        |            |  .oldManBattle
(125)  |  210F  |            |
      |        |  21 87 D8  |      ld hl, wGrassRate  ; D887
(126)  |  D887  |            |
(127)  |  5811  |  11 58 D1  |      ld de, wPlayerName  ; D158
(128)  |  01D1  |            |
      |        |  01 0B 00  |      ld bc, NAME_LENGTH  ; 11