Hey there! I've experimented a bit lately with the Korean versions of Gold/SIlver. Wrong pocket TM15 has its execution pointer in $FA0F (effectively DA0F), which points to the second character of box name 12. Effectively, this can be used to get an ACE setup that doesn't require any items or pokémon. I believe this can be used to vastly speed up the setup demonstrated in this video through the use of box name codes. The following box name code achieves two things. First, it sets the quantity of all TMs in the TM pocket to x255. From there, you can just sell TMs to reach the desired quantities. Secondly, it will rewrite box 11's name so that execution will be redirected to the TM/HM pocket the next time you use TM15. (This box code also happens to be compatible with wrong pocket TM49, assuming you place a TM04 x1 in slot 5 and a TM27 x1 in slot 6 in the PC.) Box 1: 묻 붰 성 닥 갑 근 성 꺾 Box 2: 꺌 근 성 랴 같 근 성 박 Box 3: 껭 근 성 섈 갠 근 성 앰 Box 4: 겜 근 성 젬 깝 근 성 쵭 Box 5: 겊 긋 생 꺾 깐 근 성 꺾 Box 6: 겠 근 성 닥 깠 근 성 랴 Box 7: 샘 Box 11: first name it (space) (space) (space) 꺽 Afterwards, overwrite box 11 with: (space) (space) 상 Box 12: (space) 상 꺾 (overwriting box 11's name is important, since it places an additional $50 terminator right after 상 while leaving the second half of 꺽 intact, forming a C3 50 D9 instruction that jumps execution directly to the start of box names.) This box code is part of a larger setup I've been working on the last week or so for the Korean releases of Gold & Silver. The rest can be found on the following glitch city wiki page: glitchcity.wiki/wiki/User:TimoVM/Korean_GS_fast_ACE_setup Box names are honestly quite interesting in the Korean version. All user input characters are 2 bytes long, with the first byte having a value between $01 and $0B while the second byte can be nearly any value (except for the $50-$5F range, which seems reserved for control code characters). In effect, this means that almost all 1-byte opcodes are accessible, but the $DA01-$DA0B area is the only area you can easily write values to. This is enough space to form simple code snippets though, filling the pokédex would likely be quite practical through calling ByteFill (a ROM function. Start filling bc amount of bytes with the value currently in register a from address hl onward.) Assembly of the box code: (box 1 starts from D952 onward) Box 1: 04AF 053D 05EA 02DA 0109 01A9 05EA 01DA 50 Box 2: 01D7 01A9 05EA 03DA 0110 01A9 05EA 04DA 50 Box 3: 01E7 01A9 05EA 05DA 0115 01A9 05EA 06DA 50 Box 4: 0137 01A9 05EA 07DA 01C5 01A9 05EA 08DA 50 Box 5: 0132 01AF 05CD 01DA 01C1 01A9 05EA 01DA 50 Box 6: 013A 01A9 05EA 02DA 01C7 01A9 05EA 03DA 50 Box 7: 05C9 50 Box 11: 0BFF 0BFF 05C3 50D9 50 Box 12: 0B FF [TM15 ENTRY POINT HERE] 05 C3 01 DA 50
Thank you for any helpful information! I've been thinking about how to access the box name like other language versions, but I gave up because Korean letter consists of 2 bytes so it is hard to control, and also don't even know that TM15 is directly connected to name of Box 12. I will try this trick in future video.
Much appreciated for the reply! :) A motif you can use for Korean box codes is to have a 4-letter sequence like 01 XX 01 79 05 EA 0X DA ld bc, 01XX ld a, c ; effectively sets a = XX, for inaccessible values, use sub c/add c/xor c instead dec b ; filler code ld (DA0X), a To fill the DA01-DA0B area with arbitrary code, then call/jump to DA01 to execute that code. ROM bank 0 contains quite a few functions that are useful if you know where they are located. The disassembly project for Pokémon Gold/Silver has a symbols branch that contains the addresses of functions, but sadly most ROM functions are in different addresses between language versions. One thing that you can do is to take the EN version and search for the assembly of the same function in the same general region in the KOR version. Some examples that can be useful (with their Korean version addresses): ByteFill: 31F4 - take the value in a, fill bc bytes with that value from address hl onward. CopyBytes: 31C2 - copy bc bytes from address hl to address bc OpenSRAM: 317A - Allow access to sram, (area between A000-BFFF) and switch sram bank to the corresponding value in a (sram banks are numbered from 0 to 3). Be careful editing sram bank 1, since it's checksum protected. I've also went through the effect pointers of TMs. The only other one I could find that was instantly somewhat applicable was TM22 (effect pointer in D0BE), which is an address where the current selected item's ID is stored. Just a few bytes further lies the buffer where the last viewed party pokémon is stored, which allows for a pretty decent setup. You can redirect TM49 to box codes by placing TM04 x1 in slot 5 and TM27 x1 in slot 6 of the PC. This forms a C2 01 DA, which translates to a jp nz, DA01. Wrong pocket TMs, upon activation, have both the carry and zero flag unset, meaning the jump is guaranteed to succeed. I was completely unable to get a bad clone by the usual method on the Virtual Console version (depositing a pokémon and saving then resetting at the right time). I am fairly certain that this method won't work at all on the Korean version due to 3DS timing issues and had to resort to Hall of Fame SRAM glitch to get a bad clone. Once you have a game with ACE enabled, you can pretty easily get an ACE setup on another game by trading pokémon holding key items to the other game, letting you do duplicate key item swap glitch to easily obtain a T15/TM49.
배리어가 사라진건 훔친 포켓몬한테 NPC가 쓰던 기술이 아닌 야생 포켓몬의 기술배치가 남게돼서 그런거 같습니다. 기존에 알려진 1,2세대 NPC 포켓몬 훔치는 방법들은 영상에 나오듯이 기술이 아예없거나 레벨업으로 배우는 기술만 남게 되어서 이 영상에선 아예 기술을 복사하는 과정을 거친거구요, 1세대에서도 임의코드실행을 같은 방식 사용하면 기술배치도 가져올 수 있을거같습니다.
존재 자체가 전설인지 환상인지 의심되는 채널
흡사 뮤
그러게요 진짜 대단하신분
존재 자체를 완전히 잊고 살다보면 어느날 갑자기 돌아오는 채널...
아니 자막이 너무 웃겨요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 비겁하게 가져가도 할말없다니 ㅋㅋㅋㅋㅠㅠㅠㅠ 웃다가 오열함요
트레이너의 포켓몬을 잡고싶다면 이정도의 노가다 희생을 해야한다는 것을 알려주는 영상...
로켓단 그들은 대체...
모든 유저의 꿈이었던 포켓몬 약탈을 눈으로 보는 날이 오네요
Hey there! I've experimented a bit lately with the Korean versions of Gold/SIlver. Wrong pocket TM15 has its execution pointer in $FA0F (effectively DA0F), which points to the second character of box name 12. Effectively, this can be used to get an ACE setup that doesn't require any items or pokémon. I believe this can be used to vastly speed up the setup demonstrated in this video through the use of box name codes.
The following box name code achieves two things. First, it sets the quantity of all TMs in the TM pocket to x255. From there, you can just sell TMs to reach the desired quantities. Secondly, it will rewrite box 11's name so that execution will be redirected to the TM/HM pocket the next time you use TM15. (This box code also happens to be compatible with wrong pocket TM49, assuming you place a TM04 x1 in slot 5 and a TM27 x1 in slot 6 in the PC.)
Box 1: 묻 붰 성 닥 갑 근 성 꺾
Box 2: 꺌 근 성 랴 같 근 성 박
Box 3: 껭 근 성 섈 갠 근 성 앰
Box 4: 겜 근 성 젬 깝 근 성 쵭
Box 5: 겊 긋 생 꺾 깐 근 성 꺾
Box 6: 겠 근 성 닥 깠 근 성 랴
Box 7: 샘
Box 11: first name it (space) (space) (space) 꺽
Afterwards, overwrite box 11 with: (space) (space) 상
Box 12: (space) 상 꺾
(overwriting box 11's name is important, since it places an additional $50 terminator right after 상 while leaving the second half of 꺽 intact, forming a C3 50 D9 instruction that jumps execution directly to the start of box names.)
This box code is part of a larger setup I've been working on the last week or so for the Korean releases of Gold & Silver. The rest can be found on the following glitch city wiki page: glitchcity.wiki/wiki/User:TimoVM/Korean_GS_fast_ACE_setup
Box names are honestly quite interesting in the Korean version. All user input characters are 2 bytes long, with the first byte having a value between $01 and $0B while the second byte can be nearly any value (except for the $50-$5F range, which seems reserved for control code characters).
In effect, this means that almost all 1-byte opcodes are accessible, but the $DA01-$DA0B area is the only area you can easily write values to. This is enough space to form simple code snippets though, filling the pokédex would likely be quite practical through calling ByteFill (a ROM function. Start filling bc amount of bytes with the value currently in register a from address hl onward.)
Assembly of the box code: (box 1 starts from D952 onward)
Box 1: 04AF 053D 05EA 02DA 0109 01A9 05EA 01DA 50
Box 2: 01D7 01A9 05EA 03DA 0110 01A9 05EA 04DA 50
Box 3: 01E7 01A9 05EA 05DA 0115 01A9 05EA 06DA 50
Box 4: 0137 01A9 05EA 07DA 01C5 01A9 05EA 08DA 50
Box 5: 0132 01AF 05CD 01DA 01C1 01A9 05EA 01DA 50
Box 6: 013A 01A9 05EA 02DA 01C7 01A9 05EA 03DA 50
Box 7: 05C9 50
Box 11: 0BFF 0BFF 05C3 50D9 50
Box 12: 0B FF [TM15 ENTRY POINT HERE] 05 C3 01 DA 50
Thank you for any helpful information!
I've been thinking about how to access the box name like other language versions, but I gave up because Korean letter consists of 2 bytes so it is hard to control, and also don't even know that TM15 is directly connected to name of Box 12.
I will try this trick in future video.
Much appreciated for the reply! :)
A motif you can use for Korean box codes is to have a 4-letter sequence like
01 XX 01 79 05 EA 0X DA
ld bc, 01XX
ld a, c ; effectively sets a = XX, for inaccessible values, use sub c/add c/xor c instead
dec b ; filler code
ld (DA0X), a
To fill the DA01-DA0B area with arbitrary code, then call/jump to DA01 to execute that code.
ROM bank 0 contains quite a few functions that are useful if you know where they are located. The disassembly project for Pokémon Gold/Silver has a symbols branch that contains the addresses of functions, but sadly most ROM functions are in different addresses between language versions. One thing that you can do is to take the EN version and search for the assembly of the same function in the same general region in the KOR version. Some examples that can be useful (with their Korean version addresses):
ByteFill: 31F4 - take the value in a, fill bc bytes with that value from address hl onward.
CopyBytes: 31C2 - copy bc bytes from address hl to address bc
OpenSRAM: 317A - Allow access to sram, (area between A000-BFFF) and switch sram bank to the corresponding value in a (sram banks are numbered from 0 to 3). Be careful editing sram bank 1, since it's checksum protected.
I've also went through the effect pointers of TMs. The only other one I could find that was instantly somewhat applicable was TM22 (effect pointer in D0BE), which is an address where the current selected item's ID is stored. Just a few bytes further lies the buffer where the last viewed party pokémon is stored, which allows for a pretty decent setup.
You can redirect TM49 to box codes by placing TM04 x1 in slot 5 and TM27 x1 in slot 6 of the PC. This forms a C2 01 DA, which translates to a jp nz, DA01. Wrong pocket TMs, upon activation, have both the carry and zero flag unset, meaning the jump is guaranteed to succeed.
I was completely unable to get a bad clone by the usual method on the Virtual Console version (depositing a pokémon and saving then resetting at the right time). I am fairly certain that this method won't work at all on the Korean version due to 3DS timing issues and had to resort to Hall of Fame SRAM glitch to get a bad clone.
Once you have a game with ACE enabled, you can pretty easily get an ACE setup on another game by trading pokémon holding key items to the other game, letting you do duplicate key item swap glitch to easily obtain a T15/TM49.
잊으면 돌아오는 유튜버 ㄷㄷ
의외로 뚜렷한 업로드 주기
진짜 과장 안 보태고 스엠님 영상 올라오면 탄성부터 나옴
도대체 얼마만이야
미친 ㅋㅋㅋ 사실상 코드값을 다꿰고있잖아 광기다
너무 재밌당ㅎㅎㅎ 잘 봤습니다! 골드/실버 버전은 제 초딩시절 추억의 게임이라그런지 봐도봐도 재밌네요
딱 잊었을 때 돌아오시는 걸 보니 심리전 고수이신듯
이 채널에서 가장 재미있는컨텐츠는 역시 임의코드로 장난치는거...
4세대 한창 할때 궁금해서 치트쓰고 라이벌 포켓몬 잡고 기술보니 기술도 있었지만 잡은 포켓몬 건드리기만 하면 게임 멈추고 3ds로 대리고 와도 똑같았던 기억이 나네요
13:08 망버지 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
1:49 수영복 어른 누나들을 포획해서 자유자재인데스쟈 우왓헤헿!
0:28 포켓몬이 물건??
항상 객관적인 사실과 이야기만 하는 것도 웃김ㅋㅋㅋㅋ. 자기 생각과 자기 얘기는 안 하심ㅋㅋ
남의 포켓몬까지 긴빠이를 칠 수 있게 되다니
오늘도 흥미로운 영상 잘 봤습니다!
1세대에서는 트레이너 데이터가 포켓몬 데이터에 포함되어 있어서 다양한 미싱노를 만들수 있었는데 2세대에서는 시스템이 달라진 모양입니다...
1세대 목호의 망나뇽을 치트로 훔치면 배리어 기술이 사라진다고 들었는데 확인 가능하신가요?
배리어가 사라진건 훔친 포켓몬한테 NPC가 쓰던 기술이 아닌 야생 포켓몬의 기술배치가 남게돼서 그런거 같습니다.
기존에 알려진 1,2세대 NPC 포켓몬 훔치는 방법들은 영상에 나오듯이 기술이 아예없거나 레벨업으로 배우는 기술만 남게 되어서
이 영상에선 아예 기술을 복사하는 과정을 거친거구요, 1세대에서도 임의코드실행을 같은 방식 사용하면 기술배치도 가져올 수 있을거같습니다.
구버전 도트감성 너무 좋아요
죽지않고살아돌아왔구나
이정도면 로켓단이 맞긴 해
로켓단쉨들 컴퓨터 안배워서 피카츄하나 못뺏은거엿네 ㅋㅋㅋ
자주 와달라에요
3:53 비워지지 않았으면 성스러운불꽃 배운 잉어킹 쌉가능인데 ㄲㅂ
4세대 소울실버 할때 치트로 트레이너 포켓몬 강탈하니
다메타마고 (불량알) 이 되던게 기억나네요. 2세대는 그게 없으니 유용한 코딩이 될수 있었어요!
아... 저렇게까지 존재가능하게 데이터 만지는게 아니라면 그냥 불량알로 변하는군요
다른 사람의 "물건" ㄷㄷ
포켓몬은 그저 물건이구나
1세대의 삭제된 시스템으로 포켓몬을 돈받고 팔 수 있는 기능이 있었죠 ㄷㄷ
노예임 사고팔 수 있는
돌아오셨군요!
SM님이랑 다칸님은 매번 어딘가에 잡혀갔는지 걱정됨
둘다 워낙 깊게 프로그램을 하는 사람이라 더 무서움 ㅋㅋㅋㅋ
이 치트를 써보고 싶다면 그냥 편히 드라스틱 치트메뉴에 npc포켓몬 잡기를 이용해 해보자..
주인공이 로켓단이네...
게으르다 하기에는 주기적으로 올리고 성실한것 치고는 너무 느리다
업로드 기다리기 = 인생의 몇 안되는 낙
형님 이거 목호가 기술 배울 수 없는 망나뇽 하나 데리고있는거 잡아서 그 기술 쓸 수 있는지 확인 가능하심까
저건 목호의 망나뇽이다 치트로 만들어진 비열한 포켓몬이지
당신의 100렙꼬렛이 더 궁금해...
비주기와 플라스마단이 눈독들일 인재상
다음에는 트레이너를 포획하는 영상을 기대하겠습니다
11:51 관련 영상은 어디서 보나요?
포켓몬 금은 vs 하트골드 소울실버 디테일 비교 3편 보시면 11번에서 찾으실 수 있습니다.
게임 관련 "잡다한 정보"와 "평범한"게임 영상을 올립니다.
SM의 포켓몬 NTR은 귀하네요....ㄷㄷㄷㄷ
어렸을때 동생친구가 치트로 목호 망나뇽 뺏어왔댔는데 초딩때 이런 코딩을 할 수 있었다면 왜 파워포인트도 못만졌을까
트레이너를 255번 포켓몬으로 변이시킨 다음 마스터볼로 납치
이 영상은 비주기 님이 좋아합니다~
ㅋㅋ 진짜 똑똑해
찐 로켓단ㄷㄷ
뺏은 포켓몬은 개체값 랜덤에 노력치 0인가요?
아님 그거도 따로 설정 가능하려나
마지막에 본 스탯 기준으로 목호가 쓰던 개체값이 적용된 스탯인데 레벨업을 시켜봐야 그 개체값이 유지 되는건지 확인할 수 있을거 같습니다
Dp랑 하트골드에서 잡았을땐 성격이랑 개챗값은 랜덤으로 나왔던걸로 기억하고있어요!
어이 기다렸다고.. “로닌”
1:36 앗! 야생의 ㄱㄱㄱㄱ곤충채집이 튀어나왔다ㅋㅋㅋㅋ
와!!!!!!!! ㅇ돌아왔다
생존신고를 유튜브로 하는 유튜버
레벨2 짜리 뀨에게 파괴광선을 ㄷㄷ
재밌다....
저거 잡고 포켓몬홈 ㄱㄴ?
SM이... 영상을...?
와.... 와........이야........
나도이제 트레이너 팰수있다
이게 로켓단이지..
Dstt 치트가 레전드였는데
신기하고 웃기다
지우가 보면 통곡할 영상
겁나 오래된 채널;;;
npc포켓몬 잡으면 바로 배틀이 끝나버리는데
원래 게임 자체에서 그렇게 설정이 되어있는건가요??
상대 포켓몬이 도망쳐도 승리로 판정되는 것으로 봐서는 플레이어의 패배 트리거가 작동하지 않은 채로 배틀이 종료되면 반드시 승리가 되는 것 같네요
@@divetothedreamsea 오오 답변 감사드립니다!
상대 포켓몬이 남아있어도 포획하는 순간 배틀이 종료 되는것도 같은 이유겠네용
다른 버전에서도 동일하게 상대 npc 포켓몬을 잡으면 동일하게 배틀이 종료가 되네요~
어디가셨지 또
저러면 어버이는 누군가요
망나뇽 이름 망버지 ㅋㅋㅋㅋㅋㅋㅋ
내 영양간식
아이고 일목아
썸네일 꼬렛닉 선우로 보이네
목호 망나뇽 기술배치 구리구나
망버지 ㅋㅋ
살아있는 로켓단