Posts for jlun2

Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
jlun2 wrote:
I know a way to jump to almost any address in System Bus: https://cdn.discordapp.com/attachments/698993369321308240/1097261539280560158/HP1_v4.bk2 1. buy a chocolate frog 2. get to the upper left of the stage by pressing start as you enter a boss fight 3. move left until 0xCABC is a value where your payload is located 4. pause the game, use frog by Right + A to jump to 0xC970, nop slide to CABB, which jumps to wherever 0xCABC pointed to 5. Credits I guess? Haven't gotten anything interesting except not crash. Crashes almost all the time however. The input file uses BizHawk 2.8. I can't figure out where to jump to do anything interesting yet; stuff such as item, card amounts, etc are all located in WRAM, so I don't know where else to go. If anyone knows, please help.
To prevent myself from accidentally losing it: https://cdn.discordapp.com/attachments/280808167993245707/1155706332301774869/HP1_v7.bk2 Sanqui realized using the Chocolate Frog puts you to WRAM bank 6, which is where items are located. They came up with a payload that took 47k sickles worth of items to setup, which gradually got bought down to 8k. Rather than use Hogwarts dungeon, I realized I can leave battles using "yes" item, so I warped to the forbidden forest to get OoB, then executed the payload to credits warp. It beats the game in 36,122 frames, or 10:02.03. I need to check something a bit more before submitting. https://cdn.discordapp.com/attachments/280808167993245707/1156653184710889542/HP1_v7.bk2 I was trying to improve it, and managed to get a whole bunch of glitched items without crashing.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
KusogeMan wrote:
isn't the cloning glitch useful? from what i recall it's faster to catch pokemon than it is to evolve, so i dont get why you have so many multiples of some of them,you could catch a wingull later... this opmitzation happens a lot in the r2 frlg tas as an example. the more i watch the less i like it, why didn't u just speedrun the game and cloned rare candies, i'm either clearly missing something or you didn't do any additional research
They wanted it glitchless. The fact it's glitchless + need to catch and obtain 1 of every Pokemon before a gym kinda makes it very boring.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I think there's a working credits warp setup for Harry Potter. Before I make a run out of it, there's 2 options: 1. Immediately jump to the credits, game doesn't recognize game end after credits, but is faster 2. Do something a bit longer to set up a jump to the end sequence, which I think game seems to recognize? It is slower however. What is better in this case?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Based on new information gathered about speed, I made a change of route: 1. Fight 2 remains the same, drop must be minus driver. 2. Fight 3 remains the same, drop must be assault rifle. 3. Fight 4,5,6 can be any drop except left arm and head. They also must all drop each different set so I can equip later at the end of tournament 2 4. Fight 7 remains the same, drop must be Leaf Fan 5. I need 1 blast gun from either fight 8 or 9 6. Swap back to default legs (forget about Gunzer) and assault rifle right before tournament 1 7. Manipulate Yanma and Kabuto to be basically the same, so they can all be OHKO with assault rifle. If they had hyper/normal laser and shell tank, I can outrun them 8. Defeat Paddy as normal. Make sure the drop is Floaty. This must be immediately swapped into, since bipedal leg has penalty of 2 in woods. 9. Inago doesn't matter. 10. Iseki's magentacat can be outrun using floaty, by making them all use Taser. They have a speed of 11 using that move, while missile with floaty should have a speed of 10. She must drop Taser either before or now, once. 11. Paddy must drop head part Meteor Strike, since it has the lowest HP. I will swap to that after Beauty to die faster. 12. Make sure Beauty has at least 1 Cockpit for money. The leader must have Taser. You should be able to outrun them with missile + floaty 13. Equip 2nd tinpet with Meteor Strike, rest doesn't matter. Lose to Yuuki. Alternatively, don't bother using 2nd tinpet, and let Yuuki take your default head part in tinpet 1. You still need the 2nd tinpet equipped, or you will get a gameover. 14. Sell exactly 1 of each: Taser + Blast Gun + Cockpit = 1000 + 1200 + 2800. This should be exactly 5000, which is enough to buy Death Blast head part. 15. Equip only the Death Blast. Do not change anything else. Beat the rest of the tournament. If I want to get Roots for the Kirara ending, I would need Yellowturtle to drop Battery head part to sell since it costs 600 yen.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
1. Can there please be a way to resize table columns? Like if something was just a table of 1 digit numbers, can it please not look be wide? 2. Can there please be a way to sort values inside tables? 3. Can there please be some visual builder for tables? It is a pain to make.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I took the time to investigate how speed works in this game When a turn starts, your medabots start's at X position 8 (left) to 64 (center), where you attack. Then you run back. For the npc, their X position is 152 (right) to 96 (center). These are the relevant addresses:
Language: lua

p1_sprite = 0xC1E0, p1_x = 0xC1E2, p1_speed = 0xC1F5, p1_speed_index = 0xC1F6, --speed is actually an array of 0s to 2s p1_direction = 0xC1F7, --0 running to side. 1 running to center p2_sprite = 0xC200, p2_x = 0xC202, p2_speed = 0xC215, p2_speed_index = 0xC216, --speed is actually an array of 0s to 2s p3_sprite = 0xC220, p3_x = 0xC222, p3_speed = 0xC235, p3_speed_index = 0xC236, --speed is actually an array of 0s to 2s npc1_sprite = 0xC240, npc1_x = 0xC242, npc1_speed = 0xC255, npc1_speed_index = 0xC256, --speed is actually an array of 0s to 2s npc2_sprite = 0xC260, npc2_x = 0xC262, npc2_speed = 0xC275, npc2_speed_index = 0xC276, --speed is actually an array of 0s to 2s npc3_sprite = 0xC280, npc3_x = 0xC282, npc3_speed = 0xC295, npc3_speed_index = 0xC296, --speed is actually an array of 0s to 2s
Speed is a value that ranges from 0 to 31. The way it works, is based on the value of Speed, the game reads an array 16 values long in ROM 0x11A0B.
ROMSpeed0123456789101112131415Pixels per 16 framesFrames to side/center
11A0B022222222222222223228
11A1B122222222222222213129
11A2B222222212222222213030
11A3B322221222212222212931
11A4B422212221222122212832
11A5B522122122122122122733
11A6B621221221212212212635
11A7B721212122121212122536
11A8B821212121212121212437
11A9B921212121211211212339
11AAB1021121121121211212241
11ABB1121121121121121112142
11ACB1221112111211121112045
11ADB1321111121111211111947
11AEB1421111111211111111849
11AFB1521111111111111111752
11B0B1611111111111111111656
11B1B1711111111111111101559
11B2B1811111101111111101463
11B3B1911110111101111101368
11B4B2011101110111011101274
11B5B2111011011011011011181
11B6B2210110110101101101089
11B7B231010101101010101999
11B8B2410101010101010108111
11B9B2510101010100100107127
11BAB2610010010010100106148
11BBB2710010010010010005177
11BCB2810001000100010004221
11BDB2910000010000100003295
11BEB3010000000100000002441
11BFB3110000000000000001881
Now how is speed determined? The function starts at ROM bank 4, 0x5C5E. 1. A value from base + 0x83 (medal rank) is obtained. This is added with 0x5D4C to get an address. The values obtained are as follows:
VALUE FROM ROM BANK 4 [5D4C + RANK] RANK 0 5D4C 4 RANK 1 5D4D 4 RANK 2 5D4E 4 RANK 3 5D4F 3 RANK 4 5D50 3 RANK 5 5D51 3 RANK 6 5D52 2 RANK 7 5D53 2 RANK 8 5D54 1 RANK 9 5D55 1 RANK A 5D56 0
2. Terrain is loaded to obtain an address. It is as follows:
0 woods 5D57 1 desert 5D5F 2 city 5D67 3 mountain 5D6F 4 beach 5D77
3. A value from base + 0x13 (leg type) is obtained. This is subtracted by 1, then add to the address in 2. You get the following:
Leg TypeBase+13[Base+13]-1WoodsValueDesertValueCityValueMountainValueBeachValue
Flying105D5745D5F05D6705D6F45D770
Hover215D5805D6005D6805D7005D780
Multi-leg325D5905D6115D6905D7115D792
Bipedal435D5A25D6225D6A05D7205D7A2
Wheeled545D5B45D6345D6B05D7325D7B4
Tank655D5C45D6425D6C25D7425D7C2
Aquatic765D5D25D6545D6D25D7515D7D0
4. A value from 0xC6F9, which is apparently wind speed, is obtained. This is then used to obtain an address:
C6F9 is determined at start of fight possible values of HL C6F9 0 5D7F 1 5D87 2 5D8F --not sure if possible` 3 5D97
5. A value from base + 0x13 (leg type) is obtained. This is subtracted by 1, then added to the address from above to obtain the following:
Leg Type[Base+13]-1C6F9 (0)ValueC6F9 (1)ValueC6F9 (2)ValueC6F9 (3)Value
Flying05D7F05D8725D8F45D970
Hover15D8005D8815D9035D983
Multi-leg25D8105D8905D9115D990
Bipedal35D8205D8A05D9215D9A3
Wheeled45D8305D8B05D9305D9B0
Tank55D8405D8C05D9405D9C3
Aquatic65D8505D8D15D9525D9D2
6. A value form base + 0xC5 (current selected part's charge), then added to the rest of the above. We get the following: value from medal rank + terrain penalty + wind speed penalty + part charge - 0x20 AND 0x1F the last part is only a check to see if your speed somehow is slower than 32, but not overflowed. It will automatically set the speed if > 0x20 (32) to 31. This means that how fast you are for the very first turn of the fight is completely independent of the speed stat mentioned in leg page:
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
From discord, by Merrp: https://discord.com/channels/280806848909541376/280808167993245707/690373520773087232
also i did end up looking into mail glitch and the doll decoration glitch unfortunately they probably won't lead to a sequence break anytime soon on jp r/s, mail glitch can only corrupt/modify the 255th mail slot, which overlaps with metatiles on some maps. so you can't modify other metatiles of the maps it is usable on, you can't do any sequence breaking - it can't touch the wailmer in lilycove - it falls one tile short of corrupting the beach on route 118 - you can't corrupt ever grande and bypass the waterfall what it can do - you can surf on land by doing it on route 110 - you can step onto water on route 103, but you won't be able to step off the other side - you can walk on water in mossdeep - you can enter a secret base as early as slateport if there was a way to modify just one more tile on route 118, you could do this: https://cdn.discordapp.com/attachments/280808167993245707/690374674894553108/so-close.mp4 and cross route 118 early additionally, if mail glitch worked on us emerald (i believe it's actually possible to set it up...but only in a secret base or link battle) you could corrupt box 2, slot 27 of the PC. and win that way
So if you, or anyone else is curious about progress so far.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
KusogeMan wrote:
Link to video mail trick is now done in ruby and sapphire english versions, tentacruel level 100 glitched runs are now available for ruby sapphire
Nice! What was the breakthrough that made it possible compared the previously where only Japanese was possible?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Glitches: Use the same medal on multiple medabots: Normally, you can only have 1 medal of each type, and only 1 medabot can use that medal. If you did the following, you could get 2 to use the same medal: 1. Get at least 2 tinpets 2. Get at least 2 medals (let's call them medal A and medal B) 3. Make tinpet 1 equip medal A. Make tinpet 2 equip medal B 4. Start a robattle with an NPC that isn't required for the story. So random encounter. 5. Choose only tinpet 1 to fight. 6. Lose the fight. 7. Go to the info screen. Select tinpet 2. 8. Change their medal to the one tinpet 1 had. Now you have 2 bots with the same medal. Example: I made 2 bots equip the Mermaid medal at the same time. Sprite glitch: At the start of the game, right after the intro, there's a 1 frame window you could move, but the game doesn't update your sprite: Encounter reset on save: This is way to slow to use, but the step count for encounters don't get saved on saving. At 47 steps, you are guaranteed to have a robattle the next time you move. A way to avoid this is simply save and reset. This makes the encounter address 0xC761 reset back to 0.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I was investigating flags for in game events in hopes of some exploit. Here's my note dump. These are all in CartRam domain in BizHawk.
6003 0 Nae is present outside the observatory. This happens once you get her flag to 7 1 You talked to Nae outside the observatory 128 Nae is no outside the observatory 6004 0 The roborubber gang member at the bottom left of the observatory area is present 128 The robomedal gang member at the bottom left of the observatory area is gone 6005 0 ??. This gets set if you gave the parts to the roborubber gang member at the observatory area. Else 60A2 gets set if you refused. 128 ?? 6006 0 You haven't bought the Star Piece in the Observatory 1 You bought a Star Piece in the Observatory 6012 0 The worker left of the stadium wants to fight you 128 The worker left of the stadium is gone 602A 0 Kubota will want you to beat the monkeys in the mountain first 1 Kubota will now challenge you in a fight in the Medabot Laboratory area 129 Kubota has been beaten in the Medabot Laboratory area 602D 0 ????? 1 this gets set after beating Inago 6035 0 ENDING RELATED You haven't tried going to the broken tinpets in the medabot laboratory. 1 You tried to enter the broken tinpet area once. 2 You tried to enter the broken tinpet area twice 3 You tried to enter the broken tinpet area 3 times 4 You tried to enter the broken tinpet area 4 times 6049 0 You haven't beaten your grandad Inesaku in Dad's Hometown. 1 You have beaten your grandad. 604A 0 You haven't talked to your grandma in Dad's Hometown. 1 You have talked to your grandma in Dad's Hometown. 6053 0 The girl in front of the medal museum in the digsite is present 128 The girl in front of the medal museum in the digsite is gone. This gets set on triggering the dig site event 6059 0 ??? 128 This gets set to 128 after respawning at your home after dig site. 6064 0 You haven't obtained the Bat medal in the building next to the medal museum in dig site. 128 You have obtained the Bat medal inside the building next to the medal museum. 6065 0 You haven't obtained the Quick Legs in the building next to the medal museum in dig site. 128 You have obtained the Quick Legs inside the building next to the medal museum. 606D 0 ????? 128 this gets set after beating Suzume 6072 0 You can give a ticket to the lady in the lotto building. Talking to her loses 1 ticket, then starts the lotto computer 1 You have given a ticket to the lady in the lotto building 6073 0 The computer in the lotto building doesn't work 1 The computer in the lotto building works. Use it to play the lotto. 608A 0 You have beaten Suzume on the roof. The building in Insect Prof. Laboratory has a girl inside now. 128 You haven't beaten Suzume on the roof. The building in Insect Prof. Laboratory has a roborubber gang member inside. 6092 0 You haven't visited the house next to the store in ninja park. Doing so now will give you Mist Net 1 You visited the house next to the store in ninja park. Doing so now will give you Ninja legs 2 You visited the house the 2nd time. You lost Mist Net in exchange for Kunai and Ninjato. Nothing then happens from now on. 6098 0 You haven't found the ninja hiding in the drawer in F1 of the ninja park hotel (room 37, upper right) 1 You found the ninja inside the drawer 6099 0 You have not obtained the Invisi-Body from the drawer in F1 of the ninja park hotel (room 37, upper left) 1 You have obtained the Invisi-Body from the drawer in F1 of the ninja park hotel (room 37, upper left) 60A2 0 The old man at the bottom left of the medabot corporation area is present. This gets set if you refused to give parts to the roborubber gang member at the bottom left of the observatory area. Else 6005 gets set instead. 128 The old man at bottom left of the medabot corporation area is gone. 60AD 0 Yuuki normal dialogue? 1 You lost to Yuuki in tournament 2, so he will give you Crow Tengu set. This then gets set to 2. 2 You defeated Yuuki in tournament 2, so he won't give you Crow Tengu parts. 3 He tells you to get to the ruins to fix your medal 4 He tells you to hurry up to get the medal fixed. 60A9 0 You haven't gotten Anti-Water from the researcher in Medabots Corporation building 1 You've obtained the anti-water from the researcher 2 You can now obtain the mini-handle from the researcher. This also gets set to 2 after beating the roborubber gang at the mine cart town. 3 You've obtained the mini-handle from the researcher 4 You can now obtain the Wings of Wind from the researcher 5 You've obtained the Wings of Wind from the researcher 60B2 0 Antique store is closed 1 Antique store is opened. 60B3 1 yanma appears blocking the path to medarot laboratory before you beaten shark 129 yanma sprite is gone 60BB 0 A boy who wants moon dragon parts is present at the park. This gets set after loosing parts to the old man in medabot corporation area. 128 The boy in the park who wants moon dragon parts is gone. 60BC 0 This gets set once you give the boy in the park moon dragon parts? 128 ?? 60C1 0 You haven't talked to the shopkeeper. 1-7 This is the amount of lotto tickets you can get. It increases by 1 every time you talk to the shopkeeper, even if you haven't talked to the old man for another ticket. 60C2 0 The old man at the antique store is grumpy 1 The old man has given you lotto ticket 2 This gets set when talking to the shopkeeper when 60C1 < 7. He will now give you lotto tickets 3 You've obtained all the lotto tickets 60C3 0 you havent beaten Inago yet. Your dad is still in your house 128 you beaten Inago. Your dad is now not in your house 60C4 0 ????? 2 this gets set after beating Inago 60C9 0 yanma is in his house 128 yanma is blocking the path to medarot laboratory 60D0 0 Science teacher is setting things up 1 Science teacher asks about your medal evolving 2 Science teacher thinks you don't trust him 3 Science teacher wants to fight you 4 Science teacher wants the Solar Laser part. THIS IS REQUIRED FOR NAE ENDING 5 You gave him the Solar Laser, or refused 6 You have the nurse the roots 60D1 0 Normal school nurse dialogue. This the sets to 1 1 Normal school nurse dialogue. This the sets to 0 2 The school nurse wants to fight you. Doing so rewards Unicorn medal. 3 The school nurse has fought you. 4 5 The nurse will fight you 6 The nurse wants the Root leg part. THIS IS REQUIRED FOR ENDING 7 You have either gave her the part, or refused. 60D7 0 You haven't entered the girls washroom 1 you entered the girl's washroom 60E2 0 The librarian hasn't lost their book. This gets set to 1 after the class before the shrine. 1 The librarian lost their book. 2 You got the book back from the metabot on the roof 3 You return the Difficult Book to the librarian 60E7 0 The medabot that took the Difficult Book is on the roof 1 You have defeated the medabot and it gave you the book 128 The medabot the took the Difficult Book is gone from the roof 60EA 0 It gets set to 1 after the class before the shrine. If you talk to him, he gets annoyed you didn't knock, but won't fight 1 This gets set after the class before the shrine. The principle will now challenge you if you don't knock. Then it gets set to 0. 2 This gets set if you knock the principle's door. The principle won't challenge you. 3 This gets set as you fight Yuuki in tournament 2. Talking to him unlocks the antique store. 60F0 0 ???? 1 This gets set to 1 after beating the shark in the harbor 129 This gets set to 129 after respawning at your home after dig site. 60F2 0 havent defeated shark. gets warning 1 npc talks how aquatic medabots are best for water stages 60F3 0 ???? 1 This gets set to 1 after beating the shark in the harbor 129 This gets set to 129 after respawning at your home after dig site. 60F7 0 shark trigger exists in harbor 128 shark has been beaten 60F8 0 knight medal chest not opened 1 makes the old man in harbor realize you have knight medal to give you parts and fish 2 he ask you to help with his dragnet 3 obtained the password 1-zu from the dragnet 60FC 0 knight medal chest not opened 1 knight medal chest opened 60FD 0 Headband in harbor cave chest not obtained 1 Headband in harbor cave chest obtained 6105 0 Suzume on the roof of the Select Corps building (area 70) hasn't been beaten 128 Suzume has been defeated on the root 6107 0 ??? 128 this gets set after beating Suzume 610C 0 The chest with the robomedal on F3 of the Select Corps building (area 74) hasn't been checked 1 The robomedal in the chest has been obtained 610F 0 The ninja hiding in the chest in the Select Corps building F4 (area 76) hasn't been fought 1 The ninja hiding in the chest has been beaten 6110 0 The roborubber gang member in F5 of Select Corps building (area 136) is present 128 He has announced that the building is the new hideout 6112 0 ????? 1 this gets set after beating Inago 6115 0 The girl next to the mayor's house in Mountain Village lost her medal 1 You beaten Inago, obtaining the girl's medal 2 You gave the medal back to the girl 6118 0 Mayor in Mountain Village wants fish. 1 You gave fish to the mayor in Mountain Village. 2 He wants soil now 3 You gave Mountain Soil to the Mayor. 4 You talked to the mayor again after giving him the Mountain Soil. You can now give him pottery. It won't advance by that, so technically possible to exchange twice. 6126 0 You haven't got your money stolen from the crow in the mountains 1 The crow stole 1000 yen from you 2 You obtained 41 robomedals from the crow's nest. It will now just caw at you if you revisit 3 weird auto walk 612A 0 You haven't obtained the mountain soil 128 You have obtained the mountain soil 612B 0 You haven't beaten Inago in the mountain springs yet 1 You beaten Inago in the mountain springs 612D 0 You haven't obtained the coin in the mountain shrine 1 You grabbed the Medal-Like Coin from the mountain shrine 2 You placed Medal-Like Coin back in exchange for Password 2-I 3 You have exchanged the Medal-Like Coin for a Chamleon medal in the Medabot Laboratory. The medal in the shrine disappears. 614A 0 ENDING RELATED You haven't talked to Nae in the medabot laboratory 1 You have talked to Nae, who now warns you about going to off limit area. This gets set to 2 after beating Inago in tournament 1. If you didn't talk to Nae, it gets set to 1 instead. This also gets advanced by 1 as soon as you fight Yuuki in tournament 2. 2 Nae will ask you to help her with something. If you say no, this gets reset to 0. If yes, she gives you Angel Leg, then set to 3. 3 She will now fight you. 4 She has fought you. 5 She wants to test something else and give you the Angel Body. 6 She will now fight you. 7 She has fought you. She will ask you if you want to stargaze with her. 614B 0 You haven't obtained the name tag in the Medabot Laboratory after dig site. 1 You have obtained the name tag in the Medabot Laboratory after dig site. 6151 0 The researcher in the Insect Prof. Laboratory hasn't challenged you after dig site. 1 The researcher has been defeated 6154 0 The ninja at the ninja park hotel basement wants to fight you 1 You have fought, or refused to fight with the ninja 6156 0 The girl at the ninja park hotel basement wants to give you a tinpet (room 36) 1 The girl has given you the tinpet 6157 0 The rope ladder in the ninja park hotel is present behind the poster. This is set to 1 once you check the poster. 1 The rope ladder in the ninja park hotel is gone. 6158 0 Suzume is inside the ninja park hotel. 128 You have defeated Suzume in the ninja park hotel. He is gone. 6159 0 The auidience member in tournament 2 is present. 1 You have defeated Iseki in tournament 2; auidience has new dialogue. 128 The auidience member in tournament 2 is gone 615A 0 The scientist in tournament 2 is present. 128 The scientist in tournament 2 is gone. 615B 0 You have not beaten Iseki in tournament 2. 128 You have defeated Iseki in tournament 2. 615C 0 You have not beaten Paddy in tournament 2. 128 You have defeated Paddy in tournament 2. 615D 0 You have not beaten Beauty in tournament 2. 128 You have defeated Beauty in tournament 2. 615E 0 You have not beaten Yuuki in tournament 2. 128 You have defeated Yuuki in tournament 2. 6160 0 Reika is present at the house southeast of medabot corporation 128 Reika has been defeated in the house southeast of medabot corporation 6167 0 You haven't talked to your Dad after the dig site event. This gets sets back to 0 again after getting the tinpet. 1 You talked to your Dad after the dig site event, so you can now get a tinpet in from the select corps. 6169 0 You haven't talked to your Dad after the dig site event. 1 You talked to your Dad after the dig site event. He now talks about how he would have joined the Select corps. 616B 0 You haven't obtained the Rubberobo Suit from your dog after the dig site. 1 You have obtained the Rubberobo Suit from your dog after the dig site. 616D 0 ??. Gets set to 1 at class before shrine. 1 ?? 6173 0 ?? 1 ?? 6175 0 Yuuki is present in the classroom. 128 Yuuki is gone from the classroom. 6176 0 Paddy is present in the classroom. 128 Paddy is gone from the classroom. 6177 0 Iseki is present in the classroom. 128 Iseki is gone from the classroom. 6178 0 Kubota is present in the classroom. 128 Kubota is gone from the classroom. 6179 0 Yanma is present in the classroom. 128 Yanma is gone from the classroom. 617A 0 The trigger for the classroom event before shrine. Gets set to 128 at class before shrine. 128 The trigger is now gone in the classroom entrance. 617E 0 Gets set at class before shrine. 128 1st tournament event. Yuuki left the tournament. 617F 0 Gets set at class before shrine. 128 1st tournament event. Yanma is defeated. 6180 0 Gets set at class before shrine. 128 1st tournament event. Kubota is defeated. 6181 0 Gets set at class before shrine. 128 1st tournament event. Paddy is defeated and referee left. 6182 0 This means you can get into the roborubber gang hideout 128 Gets set to 128 right before you enter? 6184 0 Chick seller isn't in Local Shrine 1 Chick Seller sold you parts for 500 Yen. 2 This gets set to 0 after class before shrine. Chick Seller will sell you parts. 130 The chicken seller is gone now. This gets set as soon as you defeat Iseki in the 2nd tournament. 6186 0 The roborubber gang in bottom right of the hideout (room 62) will ask you if you have a medabot. If you say no he will give you free coffinbat set 1 He tells you to hurry up and start the tournament 2 This gets set once you start the tournament. He says that's all for today's tournament. 6187 0 The trigger for the roborubber tournament is present 128 The trigger for the roborubber tournament is gone. 6188 0 Typhoon in the roborubber hideout tells you to leave 1 Typhoon fights you in the roborubber hideout 6189 0 The final grunt in the roborubber tournament tells you that's all. 1 The final grunt in the roborubber tournament ask you if you're Hikaru. 618A 0 You haven't beaten the roborubber gang member in the hideout that gives you the card (room 63) 1 You have beaten the roborubber gang member in the hideout that gives you the card 618B 0 ???. Related to 618A have beaten the roborubber gang member in the hideout that gives you the card 128 This gets set once you have beaten the roborubber gang member in the hideout that gives you the card 618C 0 ???. Related to 618D when you get roborubber badge/Abdomen in hideout chest (room 63) 128 This gets set once you have obtained the roborubber badge/Abdomen in the chest in room 63 618D 0 You haven't obtained the roborubber badge/Abdomen in hideout chest (room 63) 1 You have obtained the roborubber badge/Abdomen in hideout chest (room 63) 618E 0 You haven't obtained the Hexadon in hideout chest (room 63) 1 You have obtained the Hexadon in hideout chest (room 63) 61C1 0 ????? 1 this gets set after beating Inago 129 Kubota's sprite vanishes from Medabot Laboratory area after beating him 61C4 0 nothing 1 dad gave you allowance 61CE 0 This gets set to 0 after the school ceremony ends 1 This gets set to 1 after the fight with Yanma in the park 2 This gets set to 2 after beating Reika in the Harbor 3 this gets set after beating Inago in the mountain springs 4 This gets set after Suzume throws your tinpet off the roof 128 this is the value at start of game? 61CF 0 nothing 1 you talked to select corps officer returning the medal 2 you obtained robomedal from select corps officer 61D2 0 - nothing 1 talked to select corps after finding medal 2 talked to dad to get tinpet. setting to 1 makes him give you another 61D3 0 - nothing 1 dad gave you starter set parts. mom will now tell you to go to school last ceremony 2 you talked to teacher. mom will now tell you to do your homework 61DF 0 You haven't beaten Iseki in Downtown 1 You have beaten Iseki in Downtown 61E3 0 The sprite for roborubber gang member in F5 of Select Corps building (area 136) is present 128 The sprite is no longer present 61FD 0 you havent been to class 128 you been to school and teacher gave map and left 6244 0 The tinpet/pottery at the bottom right of the observatory hasn't been obtained 128 The tinpet/pottery at the bottom right of the observatory has been obtained. 6264 0 havent beaten Reika yet in the Harbor 1 beaten Reika in the Harbor 129 beaten yanma, after shark 6222 0 Kirara is present in the classroom. 128 Kirara is gone from the classroom. 6266 0 The trigger point for the local shrine tournament is present 1 Yanma is defeated in the tournament. 2 Kubota is defeated in the tournament. 3 Paddy is defeated in the tournament. Inago is now present to fight. 128 The trigger for the local shrine tournament is gone. 131 Inago is defeated in the shrine arena. 6278 0 You haven't beaten Suzume on the roof. The roborubber gang member in the building of Insect Prof. Laboratory is present. 128 You have beaten Suzume. The gang member is now gone. 6279 0 The judge in the local shrine is present 128 The judge in the local shrine is gone. 6284 0 This got set when you enter the roborubber gang hideout? 128 ?? 6285 0 tinpet in harbor cave havent been obtained 1 tinpet in harbor cave has been obtained 6289 0 ?? 128 This gets set when you encounter Reika at the house at southeast of the medabot corporation area. 628A 0 The trigger point for the medabot corporation tournament is present 1 Iseki is defeated in the tournament. 2 Paddy is defeated in the tournament. 3 Beauty is defeated in the tournament 128 Tournament 2 trigger is gone 131 Yuuki is defeated in the tournament. 629A 0 school is locked 128 you talked to mom about last day of school; unlocks school
For Kirara ending, the main address to note is: 0x60D1 This is for the nurse at the school. Giving her the Root part, bought at the store in Insect Prof. Lab area, is enough to trigger her ending. For Nae's ending, the main addresses are: 0x60D0 - Science teacher's progress. Needs to be 6. You MUST give him the Solar Laser (also from Prof. Lab area store) before giving the Root to the nurse, or it won't let you. 0x60D1 - Nurse progress. Needs to be 7. Giving her the Root part, bought at the store in Insect Prof. Lab area 0x614A - Nae's progress. Need to be 7. The opportunity to talk to her appears right after the dig site event.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I found this while looking for LttP stuff: https://www.alttp-wiki.net/index.php/ACE_RTA This is for the SNES version. I have no idea how much glitches are preserved between GBA vs. SNES, but it would be interesting if GBA had ACE. The wiki also has other bugs I never heard of, mostly for SNES, that I do not know if applies to GBA. https://www.alttp-wiki.net/index.php/Tech
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I made a display script for this game: Download yuuyuu3.lua
Language: lua

memory.usememorydomain("System Bus") local Addresses = { Player = { stage_x = 0xFF93, stage_y = 0xFF96, char1_HP = 0xD3F5, char1_XP = 0xD3F7, char2_HP = 0xD3FD, char2_XP = 0xD3FF, char3_HP = 0xD405, char3_XP = 0xD407, char4_HP = 0xD40D, char4_XP = 0xD40F, overworld_y = 0xD66C, overworld_x = 0xD67D, current_HP = 0xFFA0, --hp of current character current_XP = 0xFFA4, stage_x_real = 0xFF92, --3 bytes stage_y_real = 0xFF95 }, head_sprite_x = 0xFF43, --Use this as cam x head_sprite_y = 0xFFBD, --Use this as cam y game_state = 0xD398, --[[ 1 Overworld 2 3 Stats screen 4 Fade to stage 5 Password screen 6 Minigame 7 Stage 9 End cutscene ]]-- pause = 0xD410, npc_start = 0xD46E, --x, +3 y, +6 hp cam_x = 0xFFB9, cam_y = 0xFFBD, } function text(x, y, message, color) gui.drawText(x+1, y+1, message, "black", nil, 12) gui.drawText(x, y, message, color,nil, 12) end offset = 0x18 while true do game_state = memory.read_u8(Addresses.game_state) cam_x = memory.read_u16_le(Addresses.cam_x) cam_y = memory.read_u16_le(Addresses.cam_y) x = memory.read_u16_le(Addresses.Player.stage_x) y = memory.read_u16_le(Addresses.Player.stage_y) hp = memory.read_u8(Addresses.Player.current_HP) text(0,60,game_state,"red") if game_state == 7 then text(x - cam_x, y - cam_y, hp, "red") text(0, 40, cam_x, "red") text(0, 50, cam_y, "red") for i = 0, 10 do e_x = memory.read_u16_le(Addresses.npc_start + offset * i) e_y = memory.read_u16_le(Addresses.npc_start + 3 + offset * i) e_hp = memory.read_u8(Addresses.npc_start + 6 + offset * i) e_cam_x = (e_x - cam_x) e_cam_y = (e_y - cam_y) -- console.log(e_cam_y) text(e_cam_x, e_cam_y, e_hp, "red") end end emu.frameadvance() end
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
As a TASer you would need to do your best judgment on how to break a game the least, and if unsure ask judges as well. Ideally talk to the existing community for that game too. Again, the global policies, and game specific rules, are meant to make sense.
1. I did ask about what counted as a glitch above. Your reply sounded rather hostile when I asked. I do have legit interests in remaking my old TASes, yet when I did ask I get sarcastic replies like
Being frustrated at people who dare discuss things doesn't sound very promising.
Ultimately, what's the worst case scenario if we're wrong? A run gets published? Heavens, me! Think of the children!!!
Almost all the games I'm interested have literally 0 communities. If I can't even ask a judge here, the only thing I can do is resync my old runs, remove the glitches, then submit and pray for the best. The frustration has nothing to do with the rules. It is my personal feeling that I suspect when making this rule, most obscure games with minor bugs were not in your mind. I could be completely wrong, and you were indeed also thinking of obsure edge cases when making this rule. In that case, sorry. Here's some concrete examples of games I am interested in: 1. Tiny Toon Adventures 2: Montana's Movie Madness (there's a single clipping bug used in 1 room, but old VBA so that needs resync) 2. Bishoujo Senshi Sailor Moon R (a single clipping bug in stage 2) 3. Nanashi no Geemu (A single npc bypass in stage 3, but it is in desmume, so bleg) 4. Sabre Wulf (a single npc despawn bug iirc) 5. Jenga world tour (a single stage where the blocks spontanously all fell, but it got rejected for being a board game) 6. Yuu Yuu Hakusho: Makai no Tobira (I'm not sure if the current route of making the bosses in place counts as bug, but if so then just change the fights I guess so they actually move around) I am mainly concerned for 5 and 6. If you can, please answer do those count as bugs.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Which problem would revenge spam solve?
What? It isn't revenge. I'm actually inspired by your quote:
If TASing is meta-play, TASVideos Movie Rules are meta-meta-play!
I am a glitch hunter, so I love finding exploits to use. In this case, rules like this I find fun to utilize. The same thing happens for games. The developers make a bunch of rules (the code), and I immediately go "so what can I do to break the game?" In other words, I'm asking this not in the view of "this class bad", but in the view of "so how do I break it"?
Ultimately, what's the worst case scenario if we're wrong? A run gets published? Heavens, me! Think of the children!!!
Again, you confuse me for being against this. I'm actually asking because I want to make runs that push the boundaries. I'm not upset actually. In fact, I would be more upset if the judges backtrack and consider more movies be considered spam (then immediately ban me).
Hah, there is certainly the possibility of a lot of bad faith submissions, but somehow I do not think there will be too many of these since tasing is really time consuming. Most games are not so easy to optimally tas due to routing, rng, and lag. Maybe some really simple games are really easy to do multiple submissions with a glitchless though. I do think that those bad faith submissions like your example should be chucked in the garbage though since it is super low effort with basically no difference in the final result. Feels like creating a lot of noise and extra work for people for no benefit. Those submissions should just go to userfiles.
I am sorry if my post comes as bad faith. It is not. I do agree it is time consuming to make a TAS. That is why this rule change is a huge plus for me. I can reuse all my discoveries and scripts to make 2+ runs, rather than all that work on 1 single run. That's why I would love clarification on what is a glitch, so I can dust off past games I TASed and modify them to make something new, reusing almost everything. I see that as work smarter, not harder.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
EZGames69 wrote:
feos wrote:
Doesn't that mean that we're letting the game shine through whatever extremes it allows for? In some games the use of glitches is the only thing you can minimize or maximize, and we would be highlighting those differences officially, rather then requiring it to be entertaining.
It’s not the entertainment aspect I’m referring to. It’s wether or not it creates a notable difference in how the game is played. Here’s an example, in [4048M], the entire game contains no glitches or bugs, except for when it reaches 6-3 where it performs a glitch that saves 50 frames overall. This is a clip of the glitch: https://youtube.com/clip/Ugkx4ImmE_J0Hlv4TUZ66bTlRG7LlshuNExV Here’s what the SNES run does for reference: https://youtube.com/clip/UgkxQVqxP0OYbNFWRzd9HEO8phmiowr7RYlq Would it make sense to do a glitchless TAS for DKC2 GBA, where the only difference would be that one stage? While every other level would be basically identical? Because I don’t see how that’s a good enough argument to put it into standard just on the fact alone that it’s glitchless.
I just found out about this thread. If this passes, I am totally going to submit runs with minor changes to get more easy records. Also, for things like "Super Scribblenauts" or "Brain Age", how exactly would a "glitchless" run be like? I am curious how large of a number for instance "2" needs to be to not count as "bug", given you can basically draw anything and it will count. For real though, I find "glitchless" usually just refer to popular games that are broken. Like, who even cares about some obscure (J) only game no one else ever heard of it to bother gltichless/glitched? It is rather frustrating there's this discussion, and I immediately get the feeling the games people usually have in mind are the popular ones with glitches, with no regard in how it may work as a standard in general for most other games, or ones that have very minor bugs that affect 1 single stage. If this does pass, I will need to ask, for multiple games, what counts as a bug. For instance, Jurassic Park (NES) doubles your need for 1 single frame every time you land. Am I supposed to minimize jumping in a glitchless run? In Spongebob the movie, if you do not hold on a direction when in the air using Patrick's pants to fly, they don't reduce your speed. Is that a bug? How much do I limit myself to count as glitchless in this case? For Digimon Ruby, it was noted that the story progression flags do not match the actual dialogue given.
The game's script (as in plot progression requirements) is...less than solid. The plot can tell you to destroy a Dark Crystal, when in reality the script will ignore the flag about the destruction of that crystal entirely, and it would speed things up significantly if you avoid doing so.
Is a "glitchless" run required to beat the crystal, even if the game doesn't check it? I'm not sure if it exist, but I hope one day I can find a game with only a single menu bug at the very beginning, then submit 2 runs as "glitchless" and "any%".
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Would it be possible to use the previous SNES route? Link to video [2449] SNES The Legend of Zelda: A Link to the Past (Japan) "warp glitch" by Tompa in 02:13.21 This enters the castle from the left instead. Maybe message Tompa for help on this?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Battle: The goal of the battle is to get the leader (the bot at the top right of the field) hp to 0. By destroying the head, their hp instantly drops to 0, allowing for quick fights. You start in a screen like this Here you can press A to view your parts, or press Start to begin. Once you press Start, the following addresses in CartWRAM are updated: 0x2433 - Which joint you will target when you press UP ? - Which NPC of the 3 you will target, when you press UP 0x2437 - Which joint you will target when you press RIGHT ? - Which NPC of the 3 you will target, when you press RIGHT 0x243B - Which joint you will target when you press LEFT ? - Which NPC of the 3 you will target, when you press LEFT The values are: 0 - Head 1 - Right Arm 2 - Left Arm 3 - Legs On the very first turn, once you selected a joint and pressed A, the npc's will have their target (you, or the other 2 bots you can have) as well as the joint determined. You will also get this screen This screen only appears on the first turn. You can take advantage of this screen by delaying frames to manipulate the following: 1. If you or the npc has the head as target, right before the actual attack animation, there's a 2nd roll to see if you/the npc uses a different limb to defend the head. If so, the new joint will be the target rather than the head. This is very bad, and is usually the reason why delays are long. However, if the NPC is targeting your head, this can be very helpful, since it allows more choices of frames to choose from. 2. If the attack misses. This usually doesn't happen, but later on NPCs have high evasive, so it starts becoming a problem 3. If the attack misses, and you used a missile, does the blast still hit? From english patch: This is what the Japanese WIP manipulates to occur. If you used the default missile (UP), even if it misses, there's a chance the attack still hits. 4. How fast you and the npc run to the center of the stage to attack. For NPCs with similar speeds as you, this might allow you to KO them before they get to attack. 5. After the 1st turn, what will the NPCs target next + what joint/npc you will target. From 5, this means that if you cannot KO the leader bot in 1 turn, you must delay at this screen To make sure 1. You hit the leader's head. 2. On your next turn, the leader is the one targeted, and not the other 2 bots. 3. On your next turn, the leader's head is the one targeted, and not the other 3 limbs. 4. On the NPC's next turn, they don't aim for your head, or any limb that will be destroyed due to low health. To assist in this, here's the input display Download medarot data.lua
Language: lua

local medarot_module = {} --for Kabuto version 1.0 medarot_module.Addresses = { --CartRam (for fights) damage_dealt = 0x20E4, damage_dealt2 = 0x2409, target_up = 0x2432, --which npc I will hit, if I pressed Up as attack target_joint_up = 0x2433, --which joint I will hit, if I pressed Up as attack target_right = 0x2436, --which npc I will hit, if I pressed Right as attack target_joint_right = 0x2437, --which joint I will hit, if I pressed Right as attack target_left = 0x243A, --which npc I will hit, if I pressed Left as attack target_joint_left = 0x243B, --which joint I will hit, if I pressed Left as attack --0 head, 1 right arm, 2 left arm, 3 legs --medal 1 --0x2641 medal --0x2643 rank --0x2644 level --0x2645 XP, 2 bytes, big endian --0x2646 XP, 2 bytes, big endian --0x2648 attack --0x2649 defence --0x264A special --0x264B bonus --0x2656 --my stuff --starts at 0x2C00 p1_base = 0x2C00, p1_head_id = 0x2C0D, p1_right_arm_id = 0x2C0E, p1_left_arm_id = 0x2C0F, p1_leg_id = 0x2C10, p1_hp = 0x2C59, --2 byte, big endian p1_max_hp = 0x2C5B, --2 byte, big endian p1_medal = 0x2C81, p1_hp_head = 0x2CC0, p1_hp_right_arm = 0x2CC1, p1_hp_left_arm = 0x2CC2, p1_hp_leg = 0x2CC3, p1_target_joint = 0x2CCC, --which joint I will hit p1_name = 0x2CF0, p2_base = 0x2D00, p3_base = 0x2E00, --npc1 hp npc1_base = 0x2F00, npc1_char1 = 0x2F02, npc1_medal1 = 0x2F0B, --1 byte, medal? npc1_head = 0x2F0D, --1 byte, what head it is npc1_right_arm = 0x2F0E, --1 byte, what right arm it is npc1_left_arm = 0x2F0F, --1 byte, what left arm it is npc1_legs = 0x2F10, --1 byte, what leg it is -- npc1_sprite = 0x2F10, --1 byte, the one that appears in overworld npc1_hp = 0x2F59, --2 byte, big endian npc1_max_hp = 0x2F5B, --2 byte, big endian npc1_medal2 = 0x2F81, --1 byte npc1_hp_head = 0x2FC0, npc1_hp_right_arm = 0x2FC1, npc1_hp_left_arm = 0x2FC2, npc1_hp_leg = 0x2FC3, npc1_joint = 0x2FCA, --which joint they chose to use npc1_target = 0x2FCB, --which joint they chose to use npc1_target_joint = 0x2FCC, --which joint npc1 will hit --npc2 npc2_base = 0x3000, npc3_base = 0x3100, --Other stuff x_pos = 0xC0D4, y_pos = 0xC0D5, timer = 0xC5A0, --for rng rng3 = 0xC5F0, rng1 = 0xC723, rng2 = 0xC724, battle_id = 0xC753, --id of trainer encounter_timer = 0xC761, --steps before encounter area = 0xC8F9, money = 0xC93A, --number x 10 is money } --Amount is the address in CartRam for number of that part you have. medarot_module.Head = { [0] = {name ="Shotgun", sell = 1200, amount = 0x3521}, [1] = {name ="Hexadon", sell = 1100, amount = 0x3523}, [2] = {name ="Psycho-Wave", sell = 1000, amount = 0x3525}, [3] = {name ="Blast Gun", sell = 1200, amount = 0x3527}, [4] = {name ="Cockpit", sell = 2800, amount = 0x3529}, [5] = {name ="Angel Body", sell = 3000, amount = 0x352B}, [6] = {name ="Meteor Strike", sell = 700, amount = 0x352D}, [7] = {name ="Void", sell = 1000, amount = 0x352F}, [8] = {name ="Hani-Head", sell = 1500, amount = 0x3531}, [9] = {name ="Doguu", sell = 900, amount = 0x3533}, [10] = {name ="Pharnyx", sell = 800, amount = 0x3535}, [11] = {name ="Dragon Crystal", sell = 2300, amount = 0x3537}, [12] = {name ="Field Barrier", sell = 1100, amount = 0x3539}, [13] = {name ="Death Blast", sell = 5000, amount = 0x353B}, [14] = {name ="Body Blow", sell = 1500, amount = 0x353D}, [15] = {name ="Booby Trap", sell = 400, amount = 0x353F}, [16] = {name ="Headband", sell = 300, amount = 0x3541}, [17] = {name ="Hacker", sell = 300, amount = 0x3543}, [18] = {name ="Guardian", sell = 4800, amount = 0x3545}, [19] = {name ="Solar Laser", sell = 1000, amount = 0x3547}, [20] = {name ="Invisi Body", sell = 600, amount = 0x3549}, [21] = {name ="Antenna", sell = 1000, amount = 0x354B}, [22] = {name ="Missile", sell = 1000, amount = 0x354D}, [23] = {name ="Stealth Cloak/Mist Net", sell = 1200, amount = 0x354F}, [24] = {name ="Mikazuchi", sell = 300, amount = 0x3551}, [25] = {name ="Body Press", sell = 800, amount = 0x3553}, [26] = {name ="Air Bag", sell = 300, amount = 0x3555}, [27] = {name ="Samurai Blast", sell = 1500, amount = 0x3557}, [28] = {name ="Linear Cannon", sell = 400, amount = 0x3559}, [29] = {name ="Melt Cone", sell = 2400, amount = 0x355B}, [30] = {name ="Air-con", sell = 1700, amount = 0x355D}, [31] = {name ="Smoke Gas", sell = 1000, amount = 0x355F}, [32] = {name ="Mute Body", sell = 2200, amount = 0x3561}, [33] = {name ="Devil Body", sell = 700, amount = 0x3563}, [34] = {name ="Fighter Hair", sell = 1800, amount = 0x3565}, [35] = {name ="Taser", sell = 1000, amount = 0x3567}, [36] = {name ="Blizzard", sell = 1200, amount = 0x3569}, [37] = {name ="Sanctuary", sell = 1900, amount = 0x356B}, [38] = {name ="Charm Point", sell = 600, amount = 0x356D}, [39] = {name ="Body Conscious", sell = 1900, amount = 0x356F}, [40] = {name ="Body Shot", sell = 1400, amount = 0x3571}, [41] = {name ="Plasma Laser", sell = 400, amount = 0x3573}, [42] = {name ="Morning Call", sell = 1700, amount = 0x3575}, [43] = {name ="Finale", sell = 400, amount = 0x3577}, [44] = {name ="Victory Armor", sell = 300, amount = 0x3579}, [45] = {name ="Clear Shield", sell = 400, amount = 0x357B}, [46] = {name ="Search Radar", sell = 200, amount = 0x357D}, [47] = {name ="Elec-Charger", sell = 200, amount = 0x357F}, [48] = {name ="Battery", sell = 600, amount = 0x3581}, [49] = {name ="Tank Missile", sell = 1500, amount = 0x3583}, [50] = {name ="Debugger", sell = 400, amount = 0x3585}, [51] = {name ="Trample", sell = 1100, amount = 0x3587}, [52] = {name ="Cover Up", sell = 300, amount = 0x3589}, [53] = {name ="Grand Bomb", sell = 2300, amount = 0x358B}, [54] = {name ="Anti-Water", sell = 1000, amount = 0x358D}, [55] = {name ="Elec-Driver", sell = 1000, amount = 0x358F}, [56] = {name ="Pearl", sell = 1000, amount = 0x3591}, [57] = {name ="Kappa Beam", sell = 1000, amount = 0x3593}, [58] = {name ="All Repair", sell = 2300, amount = 0x3595}, [59] = {name ="Resurrector", sell = 4700, amount = 0x3597}, [60] = {name ="", sell = 0, amount = 0x3599}, [61] = {name ="", sell = 0, amount = 0x359B}, [62] = {name ="??", sell = 0, amount = 0x359D}, [63] = {name ="??", sell = 0, amount = 0x359F} } medarot_module.Right_Arm = { [0] = {name ="Cyclone", sell = 300, amount = 0x35A1}, [1] = {name ="Mistouch", sell = 400, amount = 0x35A3}, [2] = {name ="Electro-Wave", sell = 400, amount = 0x35A5}, [3] = {name ="Fire Gun", sell = 600, amount = 0x35A7}, [4] = {name ="Stabilizer", sell = 1000, amount = 0x35A9}, [5] = {name ="Angel Hand", sell = 2200, amount = 0x35AB}, [6] = {name ="Pressure", sell = 2000, amount = 0x35AD}, [7] = {name ="Avoid", sell = 1400, amount = 0x35AF}, [8] = {name ="Mirror", sell = 1500, amount = 0x35B1}, [9] = {name ="Bronze Bell", sell = 1300, amount = 0x35B3}, [10] = {name ="Sound Copy", sell = 300, amount = 0x35B5}, [11] = {name ="Healing Water", sell = 1400, amount = 0x35B7}, [12] = {name ="Energy Barrier", sell = 300, amount = 0x35B9}, [13] = {name ="Death Bomb", sell = 5000, amount = 0x35BB}, [14] = {name ="Sabre", sell = 1500, amount = 0x35BD}, [15] = {name ="Fly Trap", sell = 500, amount = 0x35BF}, [16] = {name ="Wire", sell = 300, amount = 0x35C1}, [17] = {name ="Virus", sell = 800, amount = 0x35C3}, [18] = {name ="Canceller", sell = 8000, amount = 0x35C5}, [19] = {name ="Solar Power", sell = 400, amount = 0x35C7}, [20] = {name ="Invisi Hand", sell = 400, amount = 0x35C9}, [21] = {name ="Chanbara Sword", sell = 1000, amount = 0x35CB}, [22] = {name ="Revolver", sell = 1000, amount = 0x35CD}, [23] = {name ="Kunai", sell = 1200, amount = 0x35CF}, [24] = {name ="Fencing", sell = 400, amount = 0x35D1}, [25] = {name ="Light Axe", sell = 500, amount = 0x35D3}, [26] = {name ="Spin Knuckle", sell = 400, amount = 0x35D5}, [27] = {name ="Beam Saber", sell = 1500, amount = 0x35D7}, [28] = {name ="Snipe Rifle", sell = 500, amount = 0x35D9}, [29] = {name ="Melt Bomb", sell = 2400, amount = 0x35DB}, [30] = {name ="Heat Sink", sell = 1700, amount = 0x35DD}, [31] = {name ="Scout Hand", sell = 900, amount = 0x35DF}, [32] = {name ="Mute Hand", sell = 2200, amount = 0x35E1}, [33] = {name ="Devil Hand", sell = 700, amount = 0x35E3}, [34] = {name ="Machine Gun", sell = 400, amount = 0x35E5}, [35] = {name ="Stun Gun", sell = 1100, amount = 0x35E7}, [36] = {name ="Ice", sell = 1000, amount = 0x35E9}, [37] = {name ="First Aid", sell = 1000, amount = 0x35EB}, [38] = {name ="Powder Bomb", sell = 1400, amount = 0x35ED}, [39] = {name ="Hand Whip", sell = 1900, amount = 0x35EF}, [40] = {name ="Anti-Air Missile", sell = 1400, amount = 0x35F1}, [41] = {name ="Tracking Laser", sell = 200, amount = 0x35F3}, [42] = {name ="Right Beam", sell = 800, amount = 0x35F5}, [43] = {name ="Carnival", sell = 400, amount = 0x35F7}, [44] = {name ="Vulcan", sell = 700, amount = 0x35F9}, [45] = {name ="Knight Shield", sell = 400, amount = 0x35FB}, [46] = {name ="Point Radar", sell = 300, amount = 0x35FD}, [47] = {name ="Charge", sell = 300, amount = 0x35FF}, [48] = {name ="Normal Laser", sell = 600, amount = 0x3601}, [49] = {name ="Homing", sell = 700, amount = 0x3603}, [50] = {name ="Breaker", sell = 400, amount = 0x3605}, [51] = {name ="Right Guard", sell = 500, amount = 0x3607}, [52] = {name ="Trap Buster", sell = 300, amount = 0x3609}, [53] = {name ="Black Hole", sell = 700, amount = 0x360B}, [54] = {name ="VS Water", sell = 300, amount = 0x360D}, [55] = {name ="Plus-Driver", sell = 300, amount = 0x360F}, [56] = {name ="Drainer", sell = 1000, amount = 0x3611}, [57] = {name ="Cucumber Bomb", sell = 600, amount = 0x3613}, [58] = {name ="Cure Hand", sell = 2300, amount = 0x3615}, [59] = {name ="Free Arm", sell = 3900, amount = 0x3617}, [60] = {name ="", sell = 0, amount = 0x3619}, [61] = {name ="", sell = 0, amount = 0x361B}, [62] = {name ="", sell = 0, amount = 0x361D}, [63] = {name ="", sell = 0, amount = 0x361F} } medarot_module.Left_Arm = { [0] = {name ="Tornado", sell = 300, amount = 0x3621}, [1] = {name ="Bugler", sell = 400, amount = 0x3623}, [2] = {name ="Magnet-Wave", sell = 400, amount = 0x3625}, [3] = {name ="Flame Gun", sell = 600, amount = 0x3627}, [4] = {name ="Wing", sell = 1000, amount = 0x3629}, [5] = {name ="Angel Arm", sell = 2200, amount = 0x362B}, [6] = {name ="Masher", sell = 2000, amount = 0x362D}, [7] = {name ="Exit", sell = 1400, amount = 0x362F}, [8] = {name ="Flash", sell = 1500, amount = 0x3631}, [9] = {name ="Bronze Bang", sell = 1300, amount = 0x3633}, [10] = {name ="Return Sound", sell = 300, amount = 0x3635}, [11] = {name ="Revival Spring", sell = 1400, amount = 0x3637}, [12] = {name ="Force Barrier", sell = 300, amount = 0x3639}, [13] = {name ="Death Beam", sell = 5000, amount = 0x363B}, [14] = {name ="Cape Shield", sell = 1500, amount = 0x363D}, [15] = {name ="Sticky Trap", sell = 500, amount = 0x363F}, [16] = {name ="Net", sell = 300, amount = 0x3641}, [17] = {name ="Jack", sell = 300, amount = 0x3643}, [18] = {name ="Recovery", sell = 8000, amount = 0x3645}, [19] = {name ="Solar Plate", sell = 400, amount = 0x3647}, [20] = {name ="Invisi Arm", sell = 400, amount = 0x3649}, [21] = {name ="Picopeco Hammer", sell = 1000, amount = 0x364B}, [22] = {name ="Submachinegun", sell = 1000, amount = 0x364D}, [23] = {name ="Ninjato", sell = 1200, amount = 0x364F}, [24] = {name ="Rapier", sell = 400, amount = 0x3651}, [25] = {name ="Great Axe", sell = 500, amount = 0x3653}, [26] = {name ="Megaton Punch", sell = 400, amount = 0x3655}, [27] = {name ="Samurai Saber", sell = 1500, amount = 0x3657}, [28] = {name ="Assault Rifle", sell = 500, amount = 0x3659}, [29] = {name ="Melt Rain", sell = 2400, amount = 0x365B}, [30] = {name ="Fan", sell = 1700, amount = 0x365D}, [31] = {name ="Scout Arm", sell = 900, amount = 0x365F}, [32] = {name ="Mute Arm", sell = 2200, amount = 0x3661}, [33] = {name ="Devil Arm", sell = 700, amount = 0x3663}, [34] = {name ="Magnum", sell = 400, amount = 0x3665}, [35] = {name ="Stun Stick", sell = 1100, amount = 0x3667}, [36] = {name ="Freeze", sell = 1600, amount = 0x3669}, [37] = {name ="Vaccine", sell = 1000, amount = 0x366B}, [38] = {name ="Hand Grenade", sell = 1400, amount = 0x366D}, [39] = {name ="Arm Candy", sell = 1900, amount = 0x366F}, [40] = {name ="Super Long Cannon", sell = 1400, amount = 0x3671}, [41] = {name ="Homing Laser", sell = 200, amount = 0x3673}, [42] = {name ="Left Beam", sell = 800, amount = 0x3675}, [43] = {name ="Festival", sell = 400, amount = 0x3677}, [44] = {name ="Gatling", sell = 700, amount = 0x3679}, [45] = {name ="Great Shield", sell = 400, amount = 0x367B}, [46] = {name ="Cut Radar", sell = 300, amount = 0x367D}, [47] = {name ="Generator", sell = 300, amount = 0x367F}, [48] = {name ="Hyper Laser", sell = 600, amount = 0x3681}, [49] = {name ="Grenade", sell = 700, amount = 0x3683}, [50] = {name ="Graviton", sell = 400, amount = 0x3685}, [51] = {name ="Left Guard", sell = 500, amount = 0x3687}, [52] = {name ="Barrier Buster", sell = 300, amount = 0x3689}, [53] = {name ="Dark Hole", sell = 700, amount = 0x368B}, [54] = {name ="Spray Water", sell = 300, amount = 0x368D}, [55] = {name ="Minus-Driver", sell = 300, amount = 0x368F}, [56] = {name ="Absorber", sell = 1000, amount = 0x3691}, [57] = {name ="Lotus Bomb", sell = 600, amount = 0x3693}, [58] = {name ="Repair Arm", sell = 2300, amount = 0x3695}, [59] = {name ="New Arm", sell = 3900, amount = 0x3697}, [60] = {name ="", sell = 0, amount = 0x3699}, [61] = {name ="", sell = 0, amount = 0x369B}, [62] = {name ="", sell = 0, amount = 0x369D}, [63] = {name ="", sell = 0, amount = 0x369F} } medarot_module.Leg = { [0] = {name ="Leaf Fan", sell = 900, amount = 0x36A1}, [1] = {name ="Abdomen", sell = 1700, amount = 0x36A3}, [2] = {name ="Coffin", sell = 500, amount = 0x36A5}, [3] = {name ="Red Tail", sell = 500, amount = 0x36A7}, [4] = {name ="Jet Engine", sell = 2700, amount = 0x36A9}, [5] = {name ="Angel Leg", sell = 2300, amount = 0x36AB}, [6] = {name ="Floaty", sell = 600, amount = 0x36AD}, [7] = {name ="Excite", sell = 500, amount = 0x36AF}, [8] = {name ="Haniwan", sell = 1500, amount = 0x36B1}, [9] = {name ="Kaboom", sell = 600, amount = 0x36B3}, [10] = {name ="Pipe Organ", sell = 400, amount = 0x36B5}, [11] = {name ="Dragon's Bed", sell = 1500, amount = 0x36B7}, [12] = {name ="Flower Fly", sell = 900, amount = 0x36B9}, [13] = {name ="Spaghetti", sell = 2500, amount = 0x36BB}, [14] = {name ="Dash Attack", sell = 1500, amount = 0x36BD}, [15] = {name ="Spider Net", sell = 800, amount = 0x36BF}, [16] = {name ="Octo Legs", sell = 300, amount = 0x36C1}, [17] = {name ="Musk", sell = 300, amount = 0x36C3}, [18] = {name ="Racer", sell = 2300, amount = 0x36C5}, [19] = {name ="Roots", sell = 300, amount = 0x36C7}, [20] = {name ="Twirl", sell = 400, amount = 0x36C9}, [21] = {name ="Tatacker", sell = 1000, amount = 0x36CB}, [22] = {name ="Ochitsuker", sell = 1000, amount = 0x36CD}, [23] = {name ="Ninja Legs", sell = 1200, amount = 0x36CF}, [24] = {name ="Hakama", sell = 300, amount = 0x36D1}, [25] = {name ="Kinta Legs", sell = 1000, amount = 0x36D3}, [26] = {name ="Breadwinner", sell = 300, amount = 0x36D5}, [27] = {name ="Commander", sell = 1500, amount = 0x36D7}, [28] = {name ="Gunzer", sell = 100, amount = 0x36D9}, [29] = {name ="Native Step", sell = 2400, amount = 0x36DB}, [30] = {name ="Bunny Hop", sell = 1700, amount = 0x36DD}, [31] = {name ="Quick Legs", sell = 1600, amount = 0x36DF}, [32] = {name ="Mute Legs", sell = 2200, amount = 0x36E1}, [33] = {name ="Devil Leg", sell = 3100, amount = 0x36E3}, [34] = {name ="Miniskirt", sell = 1800, amount = 0x36E5}, [35] = {name ="Cat Walk", sell = 1100, amount = 0x36E7}, [36] = {name ="Sled Ski", sell = 1600, amount = 0x36E9}, [37] = {name ="Apron", sell = 1000, amount = 0x36EB}, [38] = {name ="Thighs", sell = 1400, amount = 0x36ED}, [39] = {name ="Leg-High Heels", sell = 1900, amount = 0x36EF}, [40] = {name ="Plasma Dash", sell = 1400, amount = 0x36F1}, [41] = {name ="Stalker", sell = 300, amount = 0x36F3}, [42] = {name ="Dog Race", sell = 800, amount = 0x36F5}, [43] = {name ="Ballrider", sell = 400, amount = 0x36F7}, [44] = {name ="Armor Car", sell = 300, amount = 0x36F9}, [45] = {name ="Trojan Horse", sell = 400, amount = 0x36FB}, [46] = {name ="Chairly", sell = 300, amount = 0x36FD}, [47] = {name ="Snailcargot", sell = 200, amount = 0x36FF}, [48] = {name ="Shell Tank", sell = 800, amount = 0x3701}, [49] = {name ="Block Tank", sell = 700, amount = 0x3703}, [50] = {name ="Handy Car", sell = 600, amount = 0x3705}, [51] = {name ="Crush Legs", sell = 400, amount = 0x3707}, [52] = {name ="Shovel", sell = 500, amount = 0x3709}, [53] = {name ="Seat", sell = 700, amount = 0x370B}, [54] = {name ="Screw", sell = 2100, amount = 0x370D}, [55] = {name ="Flip-Flap", sell = 400, amount = 0x370F}, [56] = {name ="Undertower", sell = 1000, amount = 0x3711}, [57] = {name ="Coral Reef", sell = 900, amount = 0x3713}, [58] = {name ="Taily", sell = 1500, amount = 0x3715}, [59] = {name ="Fin", sell = 2300, amount = 0x3717}, [60] = {name ="", sell = 0, amount = 0x3719}, [61] = {name ="", sell = 0, amount = 0x371B}, [62] = {name ="", sell = 0, amount = 0x371D}, [63] = {name ="", sell = 0, amount = 0x371F} } medarot_module.Bot = { [0] = "Crow Tengu", [1] = "Propolis", [2] = "CoffinBat", [3] = "HellPhoenix", [4] = "LadyJet", [5] = "Heal Angel", [6] = "Betty Bear", [7] = "Mistyghost", [8] = "Haniwa Golem", [9] = "DonDoguu", [10] = "Volume 10", [11] = "Moon Dragon", [12] = "Pastel Fairy", [13] = "Beast Master", [14] = "Red Matador", [15] = "Trap Spider", [16] = "Kanehachi", [17] = "Maxsnake", [18] = "Acehorn", [19] = "Flowercharge", [20] = "Seven Colors", [21] = "Head Scissors", [22] = "Metal Beetle", [23] = "Nin-Ninja", [24] = "A-Burage", [25] = "Kin-Tarou", [26] = "A-Gedama", [27] = "Samurai", [28] = "Cyandog", [29] = "Teepee", [30] = "Kirabbit", [31] = "Monkey Gong", [32] = "Cosmo-Alien", [33] = "Blackmail", [34] = "Sailormate", [35] = "Magentacat", [36] = "Auroraqueen", [37] = "Holynurse", [38] = "Get Ready", [39] = "Bunnyheart", [40] = "Landmotor", [41] = "Rollstar", [42] = "Comadog", [43] = "Magical Pierrot", [44] = "Tank Soldier", [45] = "Knight Armor", [46] = "Doctor Study", [47] = "Escarloader", [48] = "Yellowturtle", [49] = "Sekizou", [50] = "Mad Muscle", [51] = "Megaphant", [52] = "Digmole", [53] = "King Pharaoh", [54] = "Blue Submarine", [55] = "Yuchitang", [56] = "Shell Cushion", [57] = "River Saucer", [58] = "Pure Mermaid", [59] = "Pinguen", [60] = "--------" } return medarot_module
Download medarot.lua
Language: lua

client.SetGameExtraPadding(0, 0, 160, 34) local medarot_data = require 'medarot data' local Addresses = medarot_data.Addresses local Head = medarot_data.Head local Right_Arm = medarot_data.Right_Arm local Left_Arm = medarot_data.Left_Arm local Leg = medarot_data.Leg local Bot = medarot_data.Bot local text local read8 local read16 local read32 if vba then text = gui.text read8 = memory.readbyteunsigned read16 = memory.readwordunsigned read32 = memory.readlongunsigned else text = gui.pixelText memory.usememorydomain("System Bus") read8 = memory.read_u8 read16 = memory.read_u16_le read16be = memory.read_u16_be read32 = memory.read_u32_le end function waitframe(frame) local damage_dealt = read8(Addresses.damage_dealt2, "CartRAM") while (frame >= 0) do damage_dealt = read8(Addresses.damage_dealt2, "CartRAM") text(0, 10,'Damage: '.. damage_dealt) --Game state for debugging emu.frameadvance() frame = frame-1 end end console.clear() local function GetStats(addr,o) o = o or {} --Construct a table if we didn't get one o.address = addr o.medal = read8(addr + 0x0B, "CartRAM") o.head = read8(addr + 0x0D, "CartRAM")%128 o.right_arm = read8(addr + 0x0E, "CartRAM")%128 o.left_arm = read8(addr + 0x0F, "CartRAM")%128 o.leg = read8(addr + 0x10, "CartRAM")%128 o.leg_swap = read8(addr + 0x2C, "CartRAM") --if 0, your attack targets leg instead? o.flux_status = read8(addr + 0x3C, "CartRAM") --if 1, accuracy is lowered --leg stats o.speed = read8(addr + 0x51, "CartRAM") --used in miss calc. mobility? o.mobility = read8(addr + 0x52, "CartRAM") --used in miss calc. mobility? o.fight = read8(addr + 0x53, "CartRAM") o.shoot = read8(addr + 0x54, "CartRAM") o.scan = read8(addr + 0x55, "CartRAM") o.conceal = read8(addr + 0x56, "CartRAM") o.joint_p = read8(addr + 0x58, "CartRAM") --the player's joint they chose o.hp = read16be(addr + 0x59, "CartRAM") o.hp_max = read16be(addr + 0x5B, "CartRAM") o.medal_level = read8(addr + 0x84, "CartRAM") o.medal_attack = read8(addr + 0x88, "CartRAM") o.medal_defence = read8(addr + 0x89, "CartRAM") o.medal_special = read8(addr + 0x8A, "CartRAM") o.medal_bonus = read8(addr + 0x8B, "CartRAM") o.hp_head = read8(addr + 0xC0, "CartRAM") o.hp_right_arm = read8(addr + 0xC1, "CartRAM") o.hp_left_arm = read8(addr + 0xC2, "CartRAM") o.hp_leg = read8(addr + 0xC3, "CartRAM") o.joint = read8(addr + 0xCA, "CartRAM") --which joint they chose to use o.target = read8(addr + 0xCB, "CartRAM") --which medabot they will attack o.target_joint = read8(addr + 0xCC, "CartRAM") --which joint they will target --... And so on return o end local joint = { [0] = "Head", "Right", "Left", "Leg"} local joint2 = { [0] = "H", "R", "L", "Lg"} local joint3 = { [0] = Head, Right, Left} local target = {[0] = "P1", "P2", "P3", "E1", "E2", "E3"} function display_parts() --get each part + amount local money = read16be(Addresses.money) * 10 local parts_money = 0 local head_money = 0 local right_money = 0 local left_money = 0 local leg_money = 0 local Head_parts = "" local Right_parts = "" local Left_parts = "" local Leg_parts = "" --for text positioning later local H = 0 local R = 0 local L = 0 local Lg = 0 local text_x = 160 local text_y = 0 for i = 0, 63 do local head_amount = read8(Head[i].amount, "CartRAM") local right_amount = read8(Right_Arm[i].amount, "CartRAM") local left_amount = read8(Left_Arm[i].amount, "CartRAM") local leg_amount = read8(Leg[i].amount, "CartRAM") head_money = head_money + (head_amount * Head[i].sell) right_money = right_money + (right_amount * Right_Arm[i].sell) left_money = left_money + (left_amount * Left_Arm[i].sell) leg_money = leg_money + (leg_amount * Leg[i].sell) if (head_amount > 0) then Head_parts = Head_parts .. Head[i].name .. " (" .. head_amount * Head[i].sell .. ")\n" H = H+1 end if (right_amount > 0) then Right_parts = Right_parts .. Right_Arm[i].name .. " (" .. right_amount * Right_Arm[i].sell .. ")\n" R = R+1 end if (left_amount > 0) then Left_parts = Left_parts .. Left_Arm[i].name .. " (" .. left_amount * Left_Arm[i].sell .. ")\n" L = L+1 end if (leg_amount > 0) then Leg_parts = Leg_parts .. Leg[i].name .. " (" .. leg_amount * Leg[i].sell .. ")\n" Lg = Lg+1 end end parts_money = head_money + right_money + left_money + leg_money text(text_x, text_y, "Money: " .. money .. " Parts value: " .. parts_money) text_y = 7 text(text_x, text_y, "Head Value: " .. head_money, "green") text_y = 14 text(text_x, text_y, Head_parts) text_y = text_y + (H * 7) text(text_x, text_y, "Right Arm Value: " .. right_money, "green") text_y = text_y + 7 text(text_x, text_y, Right_parts) text_y = text_y + (R * 7) text(text_x, text_y, "Left Arm Value: " .. left_money, "green") text_y = text_y + 7 text(text_x, text_y, Left_parts) text_y = text_y + (L * 7) text(text_x, text_y, "Leg Value: " .. leg_money, "green") text_y = text_y + 7 text(text_x, text_y, Leg_parts) end function display_robattle() local p1 = GetStats(Addresses.p1_base) local p2 = GetStats(Addresses.p2_base) local p3 = GetStats(Addresses.p3_base) local npc1 = GetStats(Addresses.npc1_base) local npc2 = GetStats(Addresses.npc2_base) local npc3 = GetStats(Addresses.npc3_base) local target_up = read8(Addresses.target_up, "CartRAM") local target_right = read8(Addresses.target_right, "CartRAM") local target_left = read8(Addresses.target_left, "CartRAM") local target_joint_up = read8(Addresses.target_joint_up, "CartRAM") local target_joint_right = read8(Addresses.target_joint_right, "CartRAM") local target_joint_left = read8(Addresses.target_joint_left, "CartRAM") local damage_dealt = read8(Addresses.damage_dealt2, "CartRAM") local text_x = 160 local text_y = 0 local text_x_relative = 0 local text_y_relative = 0 local color = "white" local l_string = "" local l_joint = "" local bots = {p1, p2, p3, npc1, npc2, npc3} -- text(text_x, text_y, "P1: HP: " .. p1.hp .. "/" .. p1.hp_max .. "\nHead: " .. p1.hp_head .. "\nRight Arm: " .. p1.hp_right_arm .. "\nLeft Arm: " .. p1.hp_left_arm .. "\nLeg: " .. p1.hp_leg .. "target_joint") --npc1 text_x = 160 text_y = 0 for i = 1, 6 do if i == 1 then text_y = 0 text_x = 160 elseif i == 4 then text_y = 34 text_x = 160 elseif i == 5 then text_y = 68 text_x = 160 elseif i == 6 then text_y = 102 text_x = 160 end if bots[i].hp > 0 then if i == 1 or i >= 4 then text_y_relative = 0 text_x_relative = 0 l_string = target[i-1] .. ": HP: " ..bots[i].hp .. "/" .. bots[i].hp_max text(text_x + text_x_relative, text_y + text_y_relative, l_string) --make it so that if the joint is used, its colored green. otherwise, white -- make it head, right left. leg is never used as attack --head l_string = (bots[i].head > 60) and "--" .. bots[i].hp_head .. ")" or Head[bots[i].head].name .. "(" .. bots[i].hp_head .. ")" color = (bots[i].joint == 0) and "green" or "white" text_x_relative = 21 text_y_relative = 7 text(text_x + text_x_relative, text_y + text_y_relative,l_string, color) --right arm l_string = (bots[i].right_arm > 60) and "--" .. bots[i].hp_right_arm .. ")" or Right_Arm[bots[i].right_arm].name .. "(" .. bots[i].hp_right_arm .. ")" color = bots[i].joint == 1 and "green" or "white" text_y_relative = 14 text(text_x + text_x_relative, text_y + text_y_relative,l_string, color) -- left arm l_string = (bots[i].left_arm > 60) and "--" .. bots[i].hp_left_arm .. ")" or Left_Arm[bots[i].left_arm].name .. "(" .. bots[i].hp_left_arm .. ")" color = bots[i].joint == 2 and "green" or "white" text_y_relative = 21 text(text_x + text_x_relative, text_y + text_y_relative,l_string, color) -- leg l_string = (bots[i].leg > 60) and "--" .. bots[i].hp_leg .. ")" or Leg[bots[i].leg].name .. "(" .. bots[i].hp_leg .. ")" text_y_relative = 28 text(text_x + text_x_relative, text_y + text_y_relative,l_string, "white") -- Their target l_string = target[bots[i].target] .. " " .. joint2[bots[i].target_joint] text(text_x, text_y + 7*(bots[i].joint + 1), l_string, "green") text_x = 0 text_y = 145 if bots[i].joint == 0 then l_joint = Head[bots[i].head].name elseif bots[i].joint == 1 then l_joint = Right_Arm[bots[i].right_arm].name elseif bots[i].joint == 2 then l_joint = Left_Arm[bots[i].left_arm].name end l_string = target[i-1] .. " used " .. l_joint .. " to attack " .. Bot[bots[bots[i].target+1].head] .. "'s " .. joint[bots[i].target_joint] if i == 1 then text_y_relative = 0 elseif i >= 4 then text_y_relative = 7 * (i - 3) end text(text_x, text_y + text_y_relative, l_string) end end end text_x = 250 text_y = 0 text(text_x, text_y, "UP :" .. joint[target_joint_up] .. "(" .. target[target_up] .. ")\nRight: " .. joint[target_joint_right] .. "(" .. target[target_right] .. ")\nLeft: ".. joint[target_joint_left] .. "(" .. target[target_left] .. ")") text_y = 34 text(text_x, text_y, "Damage: " .. damage_dealt) end local wait = 1000 local save_inner = 1 function bot() local cond_inner = false local is_pause = false local frame_start_inner = emu.framecount() local frame_dif_inner = 0 --difference between this frame and start frame local damage_dealt = 0 local p1_target_joint = 0 savestate.saveslot(save_inner) repeat local frame_now_inner = emu.framecount() if (frame_dif_inner ~= (frame_now_inner - frame_start_inner)) then --Check just in case savestate.saveslot(save_inner) end joypad.set({A=1}) emu.frameadvance() waitframe(wait) damage_dealt = read8(Addresses.damage_dealt2, "CartRAM") p1_target_joint = read8(Addresses.p1_target_joint, "CartRAM") frame_dif_inner = frame_dif_inner + 1 changed = (damage_dealt >= 40 and p1_target_joint == 0) if changed == false then savestate.loadslot(save_inner) emu.frameadvance() end until (frame_dif_inner > 300 or changed == true) client.pause() console.log("Damage:" .. damage_dealt) end -- bot() while true do local text_x = 250 local text_y = 0 local timer = read8(Addresses.timer) local rng1 = read8(Addresses.rng1) local rng2 = read8(Addresses.rng2) local rng3 = read8(Addresses.rng3) local area = read8(Addresses.area) local encounter_timer = read8(Addresses.encounter_timer) text_y = 41 text(text_x, text_y, "T: " .. timer .. " R1:" .. bizstring.hex(rng1) .. " R2:" .. bizstring.hex(rng2) .. " R3:" .. bizstring.hex(rng3)) text_y = 48 text(text_x, text_y, "Area :" .. area) text_y = 55 text(text_x, text_y, "E :" .. encounter_timer) display_robattle() -- display_parts() emu.frameadvance() end
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
There's a 1/2 finished run of it Link to video There doesn't seem to be really any bugs so far. If anyone knows more information on this game please post. https://cdn.discordapp.com/attachments/280808167993245707/1115469463173726288/Medarot_Kabuto_J_V1.1_S_Patched.wch I found some addresses for version 1.1 (english patched). https://docs.google.com/spreadsheets/d/1jCF1yrjKP_YtdQYdCLTOwyn2CYYuzUhNQyFeb87ks_E/edit?usp=sharing More stuff here Found where parts are stored in CartRAM Also listed store prices. Download get parts.lua
Language: lua

memory.usememorydomain("CartRAM") local start = 0x3520 local end_ = 0x371E local start_id = 0x80 local end_id = 0xBF for i = start, end_, 2 do memory.write_s8(i,start_id+((i-start)/2)%64) memory.write_s8(i+1,2) end
This script gives all parts, for easier testing. It works on both 1.0 and 1.1, including english patch.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
For the gameboy game medarot: https://gamefaqs.gamespot.com/gameboy/569991-medarot-kuwagata-version/cheats
No Random Encounters At the main menu, go to the configuration menu, then press Select 5 times, Up, Down, Left, Right, Start. You will no longer have random encounters during gameplay.
Is this allowed in a run? Or does this count as a password?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I enjoy the write up for the payload. On consoles like SNES, it usually is jump to 4P controllers to create a payload. Since that's not possible on gameboy, it is fascinating to read how payloads are made. Nice work!
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
If this gets published, all I'm thinking of is, how many similar flash games like this are there, and can we have a site event where we just completely flood the submission queue with them? I don't think 2 submissions of a single game can properly stress test the system. Maybe for next April Fools everyone submits a run of games similar to this, all at once, to see if the staff can handle it?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Information on drops These are the NPCs, their HP, and their drops
ID Name HP Item ID Item Name
0 Harry Student Clothes NA NA NA
1 Harry Casual Clothes NA NA NA
2 Ron Student Clothes NA NA NA
3 Ron Casual Clothes NA NA NA
4 Hermonie NA NA NA
5 Professor Lockhart (Team) NA NA NA
6 Harry with Sword NA NA NA
7 Bat 18 145 Pepper Up Potion
8 Fruit Bat 35 142 Wiggenweld Potion
9 Mortis Bat 40 144 Antidote
10 Toaster 22 149 Every Flavor Beans
11 Spintronix EggBeater 16 142 Wiggenweld Potion
12 Zephyrmaster 20 145 Pepper Up Potion
13 Splashmaster 2000 18 149 Every Flavor Beans
14 Desk Lamp 19 150 Pumpkin Pasties
15 Vacuum 24 142 Wiggenweld Potion
16 Garden Gnome 27 252 Wizard Card 1
17 Armor 80 147 Revive Potion
18 Footman 100 252 Wizard Card 1
19 Attic Ghoul 35 148 Anti-Paralysis Potion
20 Pixie 39 148 Anti-Paralysis Potion
21 Willow Branch 35 143 Wiggenweld Grand Potion
22 Flobberworm 30 146 Grand Pepper Up Potion
23 Flesh Eating Slugs 35 252 Wizard Card 1
24 Venomous Tentacular 180 148 Anti-Paralysis Potion
25 Baby Mandrake 80 143 Wiggenweld Grand Potion
26 Horklumps 51 142 Wiggenweld Potion
27 Loose Hand 50 145 Pepper Up Potion
28 River Troll 70 142 Wiggenweld Potion
29 Pheasant 50 252 Wizard Card 1
30 Ruby Firecrab 80 143 Wiggenweld Grand Potion
31 Snake 45 142 Wiggenweld Potion
32 Wasp 43 146 Grand Pepper Up Potion
33 Green Tree Frog 38 145 Pepper Up Potion
34 Forest Troll 100 142 Wiggenweld Potion
35 Angry Skull 50 143 Wiggenweld Grand Potion
36 Black Widow 20 252 Wizard Card 1
37 Brown Recluse 35 142 Wiggenweld Potion
38 Goblin 50 253 Wizard Card 2
39 Giant Rat 53 142 Wiggenweld Potion
40 Rat 15 145 Pepper Up Potion
41 Bullfrog 60 142 Wiggenweld Potion
42 Basilisk 750 254 Wizard Card 3
43 Aragog 390 147 Revive Potion
44 ?? (Willow boss) 105 253 Wizard Card 2
45 Doxy Drone 40 252 Wizard Card 1
46 Bowtruckle 50 142 Wiggenweld Potion
47 Snail 40 143 Wiggenweld Grand Potion
48 Gytrash 70 142 Wiggenweld Potion
49 Bunny 23 253 Wizard Card 2
50 Fire Salamander 30 146 Grand Pepper Up Potion
51 Malfoy 300 253 Wizard Card 2
52 Crabbe 250 143 Wiggenweld Grand Potion
53 Goyle 275 146 Grand Pepper Up Potion
54 Duel Club 1 40 150 Pumpkin Pasties
55 Duel Club 2 100 149 Every Flavor Beans
56 Duel Club 3 200 252 Wizard Card 1
57 Duel Club 4 350 142 Wiggenweld Potion
58 Duel Club 5 400 146 Grand Pepper Up Potion
59 Duel Club 6 550 143 Wiggenweld Grand Potion
60 Duel Club 7 750 147 Revive Potion
61 Professor LockHart 500 254 Wizard Card 3
62 Minor Dragonfly 20 149 Every Flavor Beans
63 Large Spider 55 142 Wiggenweld Potion
64 Knight 100 253 Wizard Card 2
65 Crusader 80 143 Wiggenweld Grand Potion
66 Swordsman 90 143 Wiggenweld Grand Potion
67 Squire 120 143 Wiggenweld Grand Potion
68 Cavalier 100 143 Wiggenweld Grand Potion
69 Paladin 110 142 Wiggenweld Potion
70 Spectre Bat 70 146 Grand Pepper Up Potion
71 Oaken Bowtruckle 76 142 Wiggenweld Potion
72 Cursed Skull 66 253 Wizard Card 2
73 Executive Desk Lamp 31 150 Pumpkin Pasties
74 Doxy Queen 142 Wiggenweld Potion
75 Imperial Dragonfly 40 252 Wizard Card 1
76 Tornado 22 142 Wiggenweld Potion
77 Frost Salamander 80 143 Wiggenweld Grand Potion
78 Emerald Firecrab 143 Wiggenweld Grand Potion
79 Sapphire Firecrab 105 147 Revive Potion
80 Briar Toad 80 253 Wizard Card 2
81 Giant Albino Rat 60 144 Antidote
82 Giant Plague Rat 70 144 Antidote
83 Giant Phantom Rat 80 146 Grand Pepper Up Potion
84 Dark Goblin 143 Wiggenweld Grand Potion
85 Plague Rat 30 252 Wizard Card 1
86 Albino Rat 40 146 Grand Pepper Up Potion
87 Phantom Rat 65 143 Wiggenweld Grand Potion
88 Firetrail Snail 70 253 Wizard Card 2
89 Flailtail Snail 100 146 Grand Pepper Up Potion
90 Spitting Snake 70 143 Wiggenweld Grand Potion
91 Whitetail Spider 58 144 Antidote
92 Cocoon Spider 90 143 Wiggenweld Grand Potion
93 Funnel Web Spider 40 146 Grand Pepper Up Potion
94 Panic Spider 55 253 Wizard Card 2
95 Redback Spider 80 142 Wiggenweld Potion
96 Tarantula Hawk 60 144 Antidote
97 Wild Rooster 70 146 Grand Pepper Up Potion
98 Phoenix 142 Wiggenweld Potion
99 Crash 255 NA
100 Harry dying NA NA NA
These are the cards from Wizard Card 1 group.
Merlin Deck Morgan Le Fay Deck
Elladora Ketteridge Archibald Alderton
Glover Hipworth Elladora Ketteridge
Ignatia Wildsmith Sacharissa Tugwood
Sacharissa Tugwood Balfour Blane
Balfour Blane Felix Summerbee
Felix Summerbee Greta Catchlove
Greta Catchlove Dorcas Wellbeloved
Dorcas Wellbeloved Crispon Cronk
Crispon Cronk Ethelred the Ever-Ready
Ethelred the Ever-Ready Xavier Rastrick
Beatrix Bloxam Fulbert the Fearful
Alberta Toothill Wendelin the Weird
Dymphna Furmage Tilly Toke
Fulbert the Fearful Havelock Sweeting
Wendelin the Weird Flavius Belby
Tilly Toke Justus Pilliwickle
Havelock Sweeting Norvel Twonk
Gulliver Pokeby Gulliver Pokeby
Glenda Chittock Perpetua Fancourt
Cassandra Vablatsky Cassandra Vablatsky
Grogan Stump Blenheim Stalk
Burdock Muldoon Gondoline Oliphant
Gondoline Oliphant Montague Knightley
Derwent Shimpling Derwent Shimpling
Chauncey Oldridge Chauncey Oldridge
Wilfred Elphick Wilfred Elphick
Bridget Wenlock Miranda Goshawk
Miranda Goshawk Hengist of Woodcroft
Hengist of Woodcroft Daisy Dodderidge
Daisy Dodderidge Albus Dumbledore
Kirley Duke Donaghan Tremlett
Myron Wagtail Kirley Duke
Orsino Thruston Orsino Thruston
Heathcote Barbary Merton Graves
Merton Graves Devlin Whitehorn
Gwenog Jones Dunbar Oglethorpe
Leopoldina Smethwyck Andros the Invincible
Roland Kegg Uric the Oddball
Mirabella Plunkett Thaddeus Thurkell
These are the cards from the Wizard Card 2 group:
Merlin Deck Morgan Le Fay Deck
Gregory the Swarmy Gaspard Shingleton
Glanmore Peakes Gregory the Swarmy
Gifford Ollerton Laverne DeMontmorency
Jocunda Sykes Glanmore Peakes
Merwyn the Malicious Gifford Ollerton
Edgar Stroulger Jocunda Sykes
Newt Scamander Merwyn the Malicious
Adalbert Waffling Yardley Platt
Elfrida Clagg Edgar Stroulger
Almerick Sawbridge Oswald Beamish
Artemisia Lufkin Newt Scamander
Gunhilda of Gorsemoor Alberic Grunnion
Mungo Bonham Elfrida Clagg
Godric Gryffindor Almerick Sawbridge
Salazar Slytherin Beaumont Marjoribanks
Helga Hufflepuff Mungo Bonham
Rowena Ravenclaw Godric Gryffindor
Gideon Crumb Helga Hufflepuff
Celestina Warbeck Rowena Ravenclaw
Josecelind Wadcock Gideon Crumb
Roderick Plumpton Herman Wintringham
Herpo the Foul Cyprian Youdle
Lord Stoddard Withers Lord Stoddard Withers
Bertie Bott Bertie Bott
These are the cards from Wizard Card 3 group.
Merlin Deck Morgan Le Fay Deck
Honouria Nutcombe Paracelsus
Quong Po Honouria Nutcombe
Carlotta Pinkstone Quong Po
Mopsus Morgan le Fay
Merlin Cornelius Agrippa
Harry Potter Harry Potter
Cliodne Cliodne
Musidora Barkwith Queen Maeve
Circe Bowman Wright
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
adelikat wrote:
The bug is that you should not have been allowed, I'll fix it so that it does not upload. You need to remove the greenzone before attempting an upload
How do I do that for all branches? I right clicked "Clear Greenzone" in Tastudios.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
https://cdn.discordapp.com/attachments/352025773537755137/1101475665359945808/HPSS_Card.tasproj I checked the timing for the lightning bug using default combos. Gulliver Pokeby's deck is the fastest so far. The following combos do not flicker the screen: Sickle Seek Snitch Streak The following combos causes flicker: Deflect Poison Immunity Summon Umbrella Conjure Snack Drone Tempest