Player (160)
Joined: 5/20/2010
Posts: 295
I've started studying this game. There is no instant death attack in this game. You have to grind levels. You cannot equip the strongest weapon if your level is under 40. You'll also run short of money. Encountering particular enemy parties and making an item drop after every battle is important. As there is no data about enemy parties and item drops, I searched. I'll show the source code of luascript on BizHawk in case I made any mistake. Inserting the code in a while loop is not necessary. enemy parties:
Language: lua

memory.usememorydomain("CARTROM") print(string.format("ePartyRomAdr\tePartyID\te1\te2\te3\te4\te5")) print(string.format("(Unknown)\t0000\t5A")) local ePartyRomAdr = {} local eID = {} local s = {} function eParty(x) local a = 0xB0ACC local b = 0xB139F local i = 1 while a < b+1 do eID[i] = memory.read_u8(a) a = a+1 i = i+1 end a = 0xB0ACC j = 1 k = 1 l = 1 while a < b do s[j] = string.format("%X\t%04X", a, j) while eID[k] ~= 0 do s[j] = s[j]..string.format("\t%02X", eID[k]) a = a+1 k = k+1 end a = a+1 j = j+1 k = k+1 end local y = x+0x60 if y > 0x24D then y = 0x24D end for i = x, y do print(s[i]) end end eParty(1) emu.frameadvance() eParty(0x60+1) emu.frameadvance() eParty(0x60*2+2) emu.frameadvance() eParty(0x60*3+3) emu.frameadvance() eParty(0x60*4+4) emu.frameadvance() eParty(0x60*5+5) emu.frameadvance() eParty(0x60*6+6) emu.frameadvance()
item drops:
Language: lua

memory.usememorydomain("CARTROM") print(string.format("dropItemRomAdr\tePartyID\titemID\titemID(h)")) local dropItemID = {} local dropItemIDh = {} local itemRomAdr = {} function itemDropRead(x) local y = x+0x60 if y > 0x24D then y = 0x24D end for i = x, y do itemRomAdr[i] = 0xB13A0 + 2*i dropItemID[i] = memory.read_u8(itemRomAdr[i]) dropItemIDh[i] = dropItemID[i] dropItemIDh[i] = string.format("%02X", dropItemIDh[i]) dropItemID[i] = tostring(dropItemID[i]) if dropItemIDh[i] == "00" then dropItemIDh[i] = "" dropItemID[i] = "" end print(string.format("%5X\t%04X\t%s\t%s", itemRomAdr[i], i, dropItemID[i], dropItemIDh[i])) end end itemDropRead(0) emu.frameadvance() itemDropRead(0x60) emu.frameadvance() itemDropRead(0x60*2+1) emu.frameadvance() itemDropRead(0x60*3+2) emu.frameadvance() itemDropRead(0x60*4+3) emu.frameadvance() itemDropRead(0x60*5+4) emu.frameadvance() itemDropRead(0x60*6+5) emu.frameadvance()
About RNG addresses, there are 8 or 9 candidates. (It might be more.) If I made all the values 0, enemies always dropped an item. Luck manipulation can be done by delaying inputs, opening and closing the menu in battles, changing walking courses. Holding A-button makes displaying text messages fast. The route and the strategy is not planned at all. I found almost all the useful addresses such as parameters boosted by reijutsu, enemy HPs, steps, season counter, event flags, location. I'll compile a luascript and a wch file and post it. The file will be zip, so maybe it will not be on userfiles but on mediafire or somewhere. (Zip files cannot be uploaded as userfiles, can they?)
Player (160)
Joined: 5/20/2010
Posts: 295
There is a minor glitch which is not mentioned and which is not useful. If you equip a stat-enhancing item and remove it (not selling it while you are equipping it) when your stat is high enough to reach 99, your stat is down. For example, when your int is 97, if you euip a Taraaku Helmet, your int will be 99 for that helmet raises int by ten. Now your int is 99, but when you remove the equipment, your int will be 89. If your level is high, you have to equip that helmet if you get the max int back.
Player (160)
Joined: 5/20/2010
Posts: 295
This shows what enemy party you can encounter according to the location.
Language: lua

memory.usememorydomain("CARTROM") print("RomAdr") local Adr = 0xB305 -- 0xB69D local ePartyID = {} local s = {} local baseAdr = Adr local pre_b function getEnemyLocation() a = 0 b = 0 c = 0 s[b] = string.format("%X", Adr) ePartyID[b] = {} while Adr+2*a+c < 0xB69D do ePartyID[b][a] = memory.read_u16_le(Adr+2*a+c) if ePartyID[b][a] > 0x024D then b = b+1 c = c+1 baseAdr = Adr + 2*a+c ePartyID[b] = {} s[b] = string.format("%X", baseAdr) ePartyID[b][a] = memory.read_u16_le(Adr+2*a+c) end s[b] = s[b]..string.format("\t%04X\n", ePartyID[b][a]) --~ s[b] = s[b]..string.format("\t%04X", ePartyID[b][a]) pre_b = b a = a+1 end end getEnemyLocation() b = 0 function printEPartyID(y) while s[b] ~= nil do print(string.sub(s[b], 1, -2)) --~ print(s[b]) b = b+1 end end printEPartyID(0)
Although location itself has to be identified manually, once you encounter one enemy party, you can see the rest of the other enemy parties where you are.
Player (160)
Joined: 5/20/2010
Posts: 295
I researched how many steps you can walk before a random battle starts. This might differs from region to region or the number of party members. without equipping Shumuba Armor: 16-47 with equipping Shumuba Armor: 8-23 You can see that Shumuba Armor's effect is halving the steps rounding down to the nearest decimal until a random battle starts.