Tales of Symphonia: Dawn of the New World [RT4EAF]

Started by Jemindra, January 05, 2009, 09:42:06 PM

Previous topic - Next topic

BurningJello

#390
80000001 0000001B
86100001 0000001A
4A001001 802EDCF8
16000000 00000018
01600000 00000000
10000000 00000000
FFFFFFFF FFFFFFFF
E0000000 80008000

It was a test with 10 Zelos, as the 0160 shows.  I was trying to rewrite the bear at the tower of mana.  I'm really not sure why the hex conversions aren't working, aside from being unable to put 0s in front of other numbers on the calculator.

Symphonian resident

I can't comprehend how 160 means you have 10 Zeloses.

BurningJello

0160 is Zelos' value, I have the enemy number line set to 10.

dcx2

Actually, you didn't choose 10 Zelos, you chose 16 Zelos.  0x10 = 16.  0xA = 10

Oh, I see why you got Q wrong.  The bear's ZYXW value is 0x27 (those values are already in hex and do not need converted).  There are 0x16D enemy ZYXW values.

There's a .txt file attached to the post I linked above, because the list is too long to post.  The attachment is "RT4EAF_encounter_table.txt".  Look in that file at the Hex column in that file for the appropriate Q value.  There are 0x4EA encounters.

Here's some chunks of the encounter table, so you can recognize it.


[spoiler]Enemy(Count)[min level\max level]
Enc   Hex   Enemy1            Enemy2            Enemy3            Enemy4            Escape

0000   000   Lucrezia(1)[0\0]                                                      no   
0001   001   Lucrezia(1)[0\0]                                                      no   
0002   002   Vortex(1)[0\0]                                                      no   
0003   003   Imp(1)[0\0]                                                         no   
0004   004   Lloyd(1)[0\0]                                                      no   
0005   005   Magnar(1st)(1)[0\0]                                                   no   
...
0025   019   Richter(2nd)(1)[0\0]                                                   no   
0026   01A   Corduroy(1)[0\0]      Were Bat(5)[40\40]                                       no   
0027   01B   Lookin(4)[0\0]                                                      no   
0028   01C   Hawk(2nd)(1)[0\0]      Vanguard Rogue(1)(1)[40\40]   Vanguard Rogue(2)(1)[40\40]                  no   
0029   01D   Brute(1)[0\0]                                                      no   
...
1253   4E5   Gorgon(1)[85\90]      Simurgh(2)[65\75]      Slime Mold(1)[65\75]      Thargelion(1)[0\0]         yes   
1254   4E6   Nereis(2)[65\75]      Cerberus(1)[65\75]      Carbuncle(1)[85\90]      Gamelion(1)[0\0]            yes   
1255   4E7   Dark Rider(2)[65\75]      Basilisk(1)[85\90]      Shape Shifter(1)[65\75]      Anthesterion(1)[0\0]      yes   
1256   4E8   Shape Shifter(1)[65\75]      Phoenix(1)[65\75]      Nereis(1)[85\90]      Elaphebolion(1)[0\0]      yes   
1257   4E9   Dark Rider(1)[85\90]      Pale Rider(1)[65\75]      Mounychion(1)[0\0]                     yes   
1258   4EA   Cerberus(1)[85\90]      Basilisk(2)[65\75]      Thargelion(1)[0\0]                        yes   
[/spoiler]

f0x

I would be interested in trying to remap the controls. Is there a guide to help get me started?

dcx2

I made a button remapping code, but it doesn't work on all games.  I tried to find other pad read functions in newer games so I could support them, but I didn't have any luck.  I'm not sure if my button remapper code works for ToS:DotNW.

frubam

Is there any way to tell how the skill Backstep works? You tap back twice, what would be the best way to find out how the asm works?

dcx2

The game likely records the ability to backstep as a flag in somewhere in memory.  If this flag is set, you can backstep.  If clear, the backstep is ignored.

Once you find this flag, set a read breakpoint and try to backstep.  With any luck, you'll be staring at the ASM that's saying "are you allowed to backstep?"  There will be a branch; one path means "yes you can" and the other path means "no you can't".

BTW, you once asked me about changing the levels of enemy fights without using a huge amount of codes.  If you use the Gecko OS GPF feature, you can patch huge quantities of memory once right after the game is loaded.  This should allow you to write the entire encounter table (all 1232? entries) to be whatever you want, and it wouldn't require taking up any code types at all.

frubam

Okay, thanks for the info =03, I'll give that a shot

frubam

Can you reupload the encounter table? I'm positive I dl'ed it, but its nowhere to be found =0<.

dcx2


frubam


frubam

#402
Man, I really wish I had a usb gecko =0<. I'd like to request to be able to change the on-screen char while you are on the map. I found what I thought looked like the value at 0x3DB7EE(NTSC), as I used Dolphin's mem search function to search for 0x0008 and 0x0009 as I switched Emil and Marta respectively to be the on-screen chars. Other tests prove that those ARE the correct values for those two chars. However, a single-RAM write to that mem location always reverts the value back to either 0x0008 and 0x0009(and 0x000B for pre-pact Emil). An always-RAM write lags the game severely, and freezes the model in its stationary animation, but it can still move. If it's too complex to look at, maybe if you could give me a hint as to what is going on, it may verrrry slightly better my chances at finding the solution(if that mem address IS the solution (>.>) ).

dcx2

I'll take a look at this later today.  My guess is that you'll need a write breakpoint to see who is writing the "legit" value back to the address.

EDIT:

The problem is that the char in the first slot is the one who's supposed to be on-screen.  So when it noticed that the char on-screen didn't match the one in the first slot, it would fix it.  Separately, it would also prevent anyone who wasn't Emil or Marta from appearing on-screen.

I fixed the second problem.  The char in the first slot will now be on-screen, regardless of who it is (I have not yet tried monsters)

First slot char is on-screen [dcx2]
0402AEA4 60000000
This should be used in combination with Party Roller or Aesteval's Party Mod

Force on-screen char [dcx2]
C202D984 00000002
5463002A 60630017
3FE0803E 00000000
based on frubam's work.  You can be all kinds of people.  0x17 = Final Richter which looks badass walking around on the map.  0x14F is a kitty!  I rolled up to 0x189, which was a few models into the enemies, and 0x18A crashed.

What kind of a roller would you like for this?  We can make something that rolls based on a value in e.g. gr7, or I can build the roller into the ASM.

frubam

#404
which ever is easier for you, I'm not picky. I would actually just like the restriction of having only Marta and Emil lifted, i.e. who ever is in first is placed on-screen, which you have already done excellently =03.

For the values, I've found that 0x00 - 0x16D prob deal with npcs, and from then on deals with monsters(0x16E + value from monster table = that monster), which already had the on-screen char restriction lifted naturally. Then it goes into some items that you'd normally see on the field or for events(like chests, a Cent cores, orig heroes statues, etc).