Author Topic: Warsong Excel Sheet  (Read 13884 times)

MeEun

  • Newbie
  • *
  • Posts: 1
    • View Profile
Warsong Excel Sheet
« on: January 15, 2010, 05:57:21 PM »
Thank you for posting the unit stats and hex data for Warsong.  I very much enjoyed reading information I knew nothing about.

I'm surprised that enemy casters often have more than one spell.  I never see them cast anything but their big nuke, until they run out of mana.

When I get the time (and motivation), I'll tinker with unit stats and spells a bit more and find out what the enemy AI can handle a bit better.
I'd like to finesse MP-drain cheesing tactics, increase boss difficulty, and tweak less desirable units - especially reduce indoor penalties globally on mounted units!  Your choice to give Tiberon the Dragon Knight promotion was an interesting alternative, on that note.

On the subject of your mod, the Excel sheet notes the changes you made, but the amuseum page doesn't include that in its description.  (Similarly, it doesn't say that it's a kick-butt Warsong modding resource.)
Also, your mod is mentioned here:
http://www.gamefaqs.com/boards/genmessage.php?board=586591&topic=46002685

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #1 on: January 16, 2010, 10:08:22 PM »
Thank you for posting the unit stats and hex data for Warsong.  I very much enjoyed reading information I knew nothing about.
Cool. It's hard to find a Warsong fan these days.

Quote
I'm surprised that enemy casters often have more than one spell.  I never see them cast anything but their big nuke, until they run out of mana.
Yea, they're very predictable. Although, sometimes it can be quite effective (e.g. scenario 12), especially if you're not prepared.
Support me on Patreon

I saw. I conquered. I came.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #2 on: August 19, 2010, 09:44:14 PM »
Use a hex editor.

Look at sheet called Hex. At the top will tell you the sections, including promotions. Find that offset. There are 34 commanders and each commander has 2 bytes. Each byte points to the next promotion class according to the order in the units list. To get the units order, go to sheet called Units. Near the middle next to and under the Notes is the order as found in the ROM. So to promote to Fighter, that byte should say 01; Dragon Knight is 17 or 18 (female). I think it was 00 for no promotion.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #3 on: August 20, 2010, 06:36:32 PM »
this bug intrigues me. probably somewhere in the ROM it locks the promotions. i'll take a look later.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #4 on: August 27, 2010, 12:09:02 PM »
promotion bug fixed in version 1.02

In another area of the ROM is masking bits for promotion and troop purchase, about 0x2000 from the data. so if 2Cxxx, search around 2Exxx

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #5 on: September 01, 2010, 01:16:59 PM »
Long time ago I also tried to change the troop code, but failed. But now that I found out about the mask (see my last post) you have to turn on the mask. 00 is true and FF is false.

For instance Fighter's troop code is 41 FF FF and the mask is 00 FF FF. If you change it to 41 42 FF, the mask should change to 00 00 FF. The last three digits of the offset is the same but separated by 0x2000. I'll edit the exact address later, but in short, if troop code is at 2Cxxx, then the mask is at 2Exxx. visually (example only):
Code: [Select]
Before
2C202: 41 FF FF
2E202: 00 FF FF
Code: [Select]
After
2C202: 41 42 FF
2E202: 00 00 FF

Note that's the gist and should work for simple modifications. Except it won't work for Garett's Fighter, which was coded differently.
« Last Edit: September 01, 2010, 10:25:05 PM by Den »

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #6 on: September 03, 2010, 09:28:14 PM »
what about them? if you want to use them, you should also modify their price to hire.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #7 on: September 04, 2010, 12:49:40 PM »
each commander is 16 bytes long. in the worksheet you see i wrote something like 34*16. you can also tell by the pattern of the data. fighter is 41FFFF.... lord is 4143FF.... so on.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #8 on: September 05, 2010, 11:34:10 PM »
get a tool to fix the checksum. such as segatool.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #9 on: September 08, 2010, 12:31:55 AM »
i played it in the past. didn't like it. i'll give it another try later maybe.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #10 on: February 15, 2011, 07:12:40 PM »
I'm glad you enjoyed the original game and my version as well. It just takes a few tweaks to turn the game into something else.

As for the item stats, they're not as easy to find as there are few samples to draw a pattern from. You could start by searching the bonuses. e.g. warsong gives +5 +3, so your search pattern might be something like 0503 or 0305 or 05000300, etc.

P.S. The girl in my avatar is Selina from the Taiwanese group S.H.E. I know she's beautiful, that's why I'm using it.  ;) This was taken about 8-10 years ago.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #11 on: February 17, 2011, 06:33:05 PM »
What type of file you get is at the mercy of the person who ripped or uploaded the ROM. I didn't know about the difference between bin and smd since Warsong is the only ROM I've dissected, and the one I got happened to be smd. The only obvious data that gets switched around that I'm aware of is that alternating letters of text strings are placed in two different sections. Like Calais would be found in different sections as Cli and aas--if you alternate the letters and put them together you get Calais.

You could try to find a bin file of Warsong or somehow convert smd into bin, and then search for the pattern.

nightshade00123

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: Warsong Excel Sheet
« Reply #12 on: February 18, 2011, 11:36:45 AM »
 Jeesh of all the ways to find data I accidentally found offensive spells while looking for items.
 
 I wasn't even intentionally looking for spells but completely stumbled across this by accident, I was searching for weapons/items data and forgot to change back one byte.

 So I'm playing the game, because I had given up looking for item data for the time being, and go to use blizzard and see that it now has a casting range of 8 instead of 5. Having no idea of all the things I changed I go through and try to remember what the heck parts I had changed, fat chance finding it this way.....

 I then find out my hex editor has a compare option, very fortunate for me, so I open a unhacked warsong.smd against my  hacked warsong.smd and the first location has a difference. What do you know it's an 8 compared to the original of 5!

 Starting at 1c1cc and ending at, or so I think, some where around 1c203. Here's how it goes as far as I can tell.

offset   spell Id  casting range   damage      ???????????????       spell name

1c1cc     01         06                 00           00 C4 00 D9        magic arrow
1c1d3     02         05                 01           00 C4 00 DA        fireball
1c1da     03         05                 01           00 C4 00 ED        blizzard
1c1e1     04         07                 01           01 C4 00 E1        lightning
1c1e8     05         05                 0F           00 C4 00 E5        thunder
1c1ef      06         04                 03           00 C4 00 E9       earthquake
1c1f6      07         05                 07           00 C4 00 CD       tornado
1c1fd      08         05                 07           01 24 01 26        fireball 2

 As you can see the first byte at any given offset is the same as your hex worksheet that list their orders in the magic section.

 The second is their casting range, not the area of effect.

 And the 3rd is damage. From what I can tell only odd numbers have any effect for raising damages. For instance having 0 will only ever do 1 damage then upgrade to 2 after level 5, magic arrows. Or using 1 will do 1-2 damage and upgrade to 2-3 damage, fireball/blizzard/lightning. Using 3 does 1-3 damage upgrading to 2-4, earthquake. But if you look at thunder it has 0f doing 1-5 upgrading to 2-6, I don't understand how it works but at least I know what to use. I have changed and messed with most of them and you can adjust their damages/range to how ever you see fit and even go higher, tried ff for damage and that nearly left enemies with about 2-3 hp left after having full life! Now I can give bosses even nastier spells. :o

 Haven't got a clue as to what the last four bytes are doing, tried messing with them and either noticed no difference or crashed the game upon trying to cast the spell! I can't tell if the other spells are nearby because the pattern of data changes after fireball 2 so all the healing spells and misc. spells are still needing to be found. I haven't located Mp cost or area of effect of spells yet either, hopefully soon I will.

 But I figured I would share this with you since it was your files that helped me in the first place and you could maybe add them to your hex worksheet if you wanted too. So here you go!

 And while I'm on the topic of items/spells I did find a code, using gens hacking version, that at least tells me the order the items are in. When you enter any of these codes below as a par/patch code through the gens emulator, these are similar to game genie codes, they will equip garret with the following item. Not to impressive but at least I have the value of the items, similar to the magics above so I know what order they are in and how it might look in the rom. :)

FF5580:01 = warsong
FF5580:02 = great sword
FF5580:03 = dragon slayer
FF5580:04 = demon axe
FF5580:05 = shield
FF5580:06 = magic wand
FF5580:07 = cross
FF5580:08 = orb
FF5580:09 = amulet
« Last Edit: February 18, 2011, 03:06:39 PM by nightshade00123 »

nightshade00123

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: Warsong Excel Sheet
« Reply #13 on: February 28, 2011, 08:59:23 AM »
 Sorry for the double post, just wanted to share the rest of the magic offset locations with anyone who is interested. It goes like this.

 Below are the offsets for area of effect for offensive spells and area of effect and range for defensive spells.
 
Magic arrow area of effect 1a1cc
Fireball area of effect 1a1d3
Blizzard area of effect 1a1da
Lightning area of effect 1a1e1
Thunder area of effect 1a1e8
Earthquake area of effect 1a1ef
Tornado area of effect 1a1f6
Fireball 2 area of effect 1a1fd
heal 1 area of effect 1c204 and casting range 1e205
heal 2 area of effect 1c20b and casting range 1e20c
heal 3 area of effect 1c212 and casting range 1e213
Sleep area of effect 1c219 and casting range 1e21a
Confuse area of effect 1c220 and casting range 1e221

 Now time to find those items!

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #14 on: February 28, 2011, 11:31:45 AM »
Thanks for sharing this, nightshade. Isn't reverse engineering exhilarating?

I don't have time to revisit Warsong now. Maybe when I have some free time, I'll update the spreadsheet.

nightshade00123

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: Warsong Excel Sheet
« Reply #15 on: February 28, 2011, 04:22:14 PM »
 Hahaha I'm no engineer that's for sure, just using a tried and true technique that's very simple and perfect for a noob like me, Rom Corruption.

 Well after about 45 minutes I finally found some item and more spell info.

 Mp cost for spells starts at 2a1b2 and ends at 2a1be starting with magic arrow and ending with confuse.

 For the item stats, such as attack and defense bonuses, I listed them below. But for example the orbs 1/2 mp ability or the amulets range of influence increase or the crosses hidden troop bonus I have yet to confirm.But here is the location for the attack/defense stats of items.

Warsongs attack bonus 2a12e defense bonus 2a138
Great swords attack bonus 2a12f defense bonus 2a139
Dragon Slayers attack bonus 2a130 defense bonus 2a13a
Demon Axe attack bonus 2a131 defense bonus 2a13b replace ff with 00 at offset 2c13b to make axe give normal defense bonuses instead of negative.
Shield attack bonus 2a132 defense bonus 2a13c
Wand attack bonus 2a133 defense bonus 2a13d
Cross attack bonus 2a134 defense bonus 2a13e
Orb attack bonus 2a135 defense bonus 2a13f
Amulet attack bonus 2a136 defense bonus 2a140

 After I find the other items stats such as the range bonus or 1/2 mp ability of the orb that's probably all I will search for, as these final discoveries make the game completely able to be molded to my liking. ;) Dunno might try and find troop placement/type for enemies to adjust the enemies on the map but I don't know yet.

 "EDIT" I just found the scenarios enemy troop list and am working with scenario 12 right now, I'm still messing with it figuring it out....
 So far it's very simple you can adjust the number of enemy troops, even going higher than the normal max if you wish, the type of troops the commanders have as well as the commanders starting level and their starting positions according to the predetermined placements on the map. The only thing I don't quit understand yet is how to change the enemy commanders. But at least I have everything else for the most part. Now I can really make difficult scenarios. ;) I will post more details when I'm done messing with it.

 "EDIT 2"
 
 Okay here's how enemy commanders/troops and their placements work in the scenarios.
 
These bytes start at 313AA and end at 313b8, this example is for emperor pythion only. This contains emperor pythions troops,starting position,level, and commander type for scenario 12 map. All the other commanders for this scenario start directly after his data. Previous scenarios start above his and later scenarios further down. The pattern is very obvious once you look at it. It looks like this for pythion.
Starting at 313AA and ending at 313b8 for Pythion the Kaiser.

1B 25 04 00 18 04 08 4F 4B 4B 4B 4B 4B 4B 4B

Enemy commander  Level   Always 00   Coordinates on map          # of troops     Troop Type             No Idea
   1B 25                   04              00                 18 04                             08                  4F               4B 4B 4B 4B 4B 4B 4B

As you can see the 25 signifies that he’s a Kaiser looking below, but it's the 1B that changes his commander type. For example the next commander below pythion is a lord if you use this Enemies commander data of 19 and change pythions 1B to 19 pythion will be a lord. He starts at level 04 and the coordinates are hex so 18=24 and 04=04. So he starts 24 squares from the left of the map and 4 squares from the top. 08 means he gets 8 troops and 4f means their royal soldiers. All these can be changed, although editing out pythion might not be good idea since he’s a boss character, you can change his troops and starting position and the other enemy commanders/troops and their starting positions as well on the map. Will post more if I find anything else but that's pretty much everything I was looking for.

ENEMIES
22 = Fighter (Enemy)
23 = Fighter (Enemy)
24 = Lord (Enemy)
25 = Kaiser
26 = Knight (Enemy)
27 = Knight (Eenmy)
28 = Royal Guard
29 = Royal Guard 2?
2A = Grand Knight (Enemy)
2B = Serpent Knight (Enemy)
2C = Wizard (Enemy)
2D = Arch Mage (Enemy)
2E = Bishop (Enemy)
2F = Great Slime
30 = Queen Ant
31 = Werewolf
32 = Necromancer
33 = Conjurer
34 = Sorcerer
35 = Living Armor
36 = Wight
37 = Kraken
38 = Gorgosaur
39 = Basalisk
3a = Wyvern
3b = Great Dragon
3c = Chaos
3d = Shaman
3e = Fire Element
3f = Huh
40 = Huh

TROOPS
41 = Soldier
42 = Horseman
43 = Archer
44 = Monk
45 = Merman
46 = Gryphon
47 = Guardman
48 = Citizen
49 = Glitch
4a = Glitch
4b = Soldier
4c = Horseman
4d = Dark Elf
4e = Lizardman
4f = Royal Soldier
50 = Slime
51 = Evil Ant
52 = Werewolf
53 = Skeleton
54 = Styracosaur
55 = Carrion Crawler
56 = Golem
57 = Leviathan
58 = Gargoyle
59 = Barbarian
5a = Elemental

 "EDIT" after going through and looking at alot of the commanders first 2 bytes of data they don't always match what is listed in the list but the first 2 bytes still change the commanders.
« Last Edit: March 01, 2011, 07:14:17 PM by nightshade00123 »

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #16 on: June 22, 2011, 05:25:23 PM »
Some characters join your group as a scripted event. Even if they were promoted before they joined you, they could revert back to their original class.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #17 on: March 30, 2012, 04:23:40 PM »
I can't say for sure, but I don't see why not. One thing to watch out for is whether that class can be promoted or not. I don't remember if enemy class have promotions or not. But as long as the class doesn't promote, it should be okay. Which is the case for royal guard.

That's actually interesting thought. What if royal guard was a friendly class that has a promotion path as well? Say when you get Lance, instead of being a dragon knight, he is a royal guard. And you can promote him like the others.

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #18 on: April 05, 2012, 08:39:02 PM »
unfortunately, the game only has room for allied commanders for promotions and troop purchases.
« Last Edit: April 05, 2012, 09:09:24 PM by Den »

Den

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1083
  • Selina is my Superstar
    • View Profile
    • Amuseum
Re: Warsong Excel Sheet
« Reply #19 on: September 21, 2012, 09:42:09 PM »
Hi!
I'm trying to edit some of the stats of the commanders but just can't seem to get it to work. There is a red screen loaded when I make a change to the file. Even something as simple as a minor change to the attack or defense. I'm using HxD Hexeditor if that is of any importance and also tried it with the game genie master code (saw this posted somewhere saying that it might work - but it doesn't).

???

get a tool to fix the checksum. such as segatool.