Tactics Ogre: The Knight of Lodis/ROM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (Fixed Hire Shop data ordering)
mNo edit summary
Line 1: Line 1:
{{rommap|game=Tactics Ogre: The Knight of Lodis}}
{{rommap|game=Tactics Ogre: The Knight of Lodis}}
=Overall ROM Map=
{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
|- style="background: #ccccff;"
!Name
!Start
!End
!Number of Entries
!Size Per Entry
!Total Size
|-
| Hire Shop || 0x622494 || 0x6224E3|| 10 || 8 || 80
|-
| Item Shop || 0x6224E4 || 0x622583|| 40 || 4 || 160
|-
| Secret Shop || 0x622584 || 0x62258B || 8 || 1 || 8
|-
| Magic Shop || 0x62258C || 0x622617 || 35 || 4 || 140
|-
|}


=Data Structures=
=Data Structures=
Line 9: Line 33:
*Many tables have an empty entry at the beginning for 'None'. Not all tables have this taken into account yet. If a table has an odd number of entries, this is likely the case.
*Many tables have an empty entry at the beginning for 'None'. Not all tables have this taken into account yet. If a table has an odd number of entries, this is likely the case.


==Shop Item Data Structure==
 
*Shop Item Data data starts at 0x006224E4 and ends at 0x0062257F in the ROM.
==Hire Shop Data Structure==
*There are 39 entries, 4 bytes in length each.
*Hire Shop Data data starts at 0x00622494 and ends at 0x006224E3 in the ROM.
*Prices are not stored in this table. They are stored in the item table.
*There are 10 entries, 8 bytes in length each.
*It's unknown how the game decides which entry to use. (e.g. Mermaids only in Rana, Giants only later in the game, random class every time, etc...)
*There is no termination data at the end of the table. The length must be hardcoded somewhere else.


{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
Line 23: Line 49:
  !Description
  !Description
  |-
  |-
  | Availabilty || 1 || 0x00 || uint8 || ?? || How far into the story the item first appears in the shop
  | Class ID || 1 || 0x00 || uint8 || 0x54 || Class to hire
|-
| Unknown || 1 || 0x01 || uint8 || Unknown || Unknown entry. Always 0
  |-
  |-
  | Item ID || 1 || 0x01 || uint8 || 0xBF || Item to be sold
  | Cost || 2 || 0x02 || uint16 || ?? || Base cost to hire the unit
|-
| Per Level Cost|| 2 || 0x04 || uint16 || ?? || Adds this much gold to the cost per extra level bought
  |-
  |-
  | Unknown || 1 || 0x02 || uint8 || Unknown || Unknown entry. Always 0
  | Unknown || 1 || 0x06 || uint8 || Unknown || Unknown entry. Always 0
  |-
  |-
  | Unknown || 1 || 0x03 || uint8 || Unknown || Unknown entry. Always 0
  | Unknown || 1 || 0x07 || uint8 || Unknown || Unknown entry. Always 0
  |-
  |-
|}
|}




==Shop Magic Data Structure==
==Item Shop Data Structure==
*Shop Magic Data data starts at 0x0062258C and ends at 0x00622613 in the ROM.
*Item Shop Data data starts at 0x006224E4 and ends at 0x00622583 in the ROM.
*There are 34 entries, 4 bytes in length each.
*There are 40 entries, 4 bytes in length each.
*Prices are not stored in this table. They are stored in the abilities table.
*Prices are not stored in this table. They are stored in the item table.
*If the spell is set to the index of an ability, it will not appear.
*The last entry is a termination of (0xff,0xff,0x00,0x00) starting at 0x622580


{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
Line 49: Line 79:
  !Description
  !Description
  |-
  |-
  | Availabilty || 1 || 0x00 || uint8 || ?? || How far into the story the spell first appears in the shop
  | Availabilty || 1 || 0x00 || uint8 || ?? || How far into the story the item first appears in the shop
  |-
  |-
  | Spell ID || 1 || 0x01 || uint8 || 0x7E || Spell to be sold
  | Item ID || 1 || 0x01 || uint8 || 0xBF || Item to be sold
  |-
  |-
  | Unknown || 1 || 0x02 || uint8 || Unknown || Unknown entry. Always 0
  | Unknown || 1 || 0x02 || uint8 || Unknown || Unknown entry. Always 0
Line 59: Line 89:
|}
|}


==Secret Shop Item Data Structure==
 
==Secret Item Shop Data Structure==
*The secret shop becomes available in Scabellum after recruiting Deneb
*The secret shop becomes available in Scabellum after recruiting Deneb
*Shop Item Data data starts at 0x00622584 and ends at 0x0062258B in the ROM.
*Item Shop Data data starts at 0x00622584 and ends at 0x0062258C in the ROM.
*There are 7 entries, 1 bytes in length each.
*There are 7 entries, 1 bytes in length each.
*Prices are not stored in this table. They are stored in the item table.
*Prices are not stored in this table. They are stored in the item table.
*The last entry is a termination of (0xff) at 0x0062258C


{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
Line 79: Line 111:




==Shop Hire Data Structure==
==Magic Shop Data Structure==
*Shop Hire Data data starts at 0x00622494 and ends at 0x006224E3 in the ROM.
*Magic Shop Data data starts at 0x0062258C and ends at 0x622617 in the ROM.
*There are 10 entries, 8 bytes in length each.
*There are 35 entries, 4 bytes in length each.
*It's unknown how the game decides which entry to use. (e.g. Mermaids only in Rana, Giants only later in the game, etc...)
*Prices are not stored in this table. They are stored in the abilities table.
*If the spell is set to the index of an ability, it will not appear.
*The last entry is a termination of (0xff,0xff,0x00,0x00) starting at 0x622614


{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1"
Line 93: Line 127:
  !Description
  !Description
  |-
  |-
  | Class ID || 1 || 0x00 || uint8 || 0x54 || Class to hire
  | Availabilty || 1 || 0x00 || uint8 || ?? || How far into the story the spell first appears in the shop
  |-
  |-
  | Unknown || 1 || 0x01 || uint8 || Unknown || Unknown entry. Always 0
  | Spell ID || 1 || 0x01 || uint8 || 0x7E || Spell to be sold
  |-
  |-
  | Cost || 2 || 0x02 || uint16 || ?? || Base cost to hire the unit
  | Unknown || 1 || 0x02 || uint8 || Unknown || Unknown entry. Always 0
|-
| Per Level Cost|| 2 || 0x04 || uint16 || ?? || Adds this much gold to the cost per extra level bought
  |-
  |-
  | Unknown || 1 || 0x06 || uint8 || Unknown || Unknown entry. Always 0
  | Unknown || 1 || 0x03 || uint8 || Unknown || Unknown entry. Always 0
|-
| Unknown || 1 || 0x07 || uint8 || Unknown || Unknown entry. Always 0
  |-
  |-
|}
|}


{{Internal Data|game=Tactics Ogre: The Knight of Lodis}}
{{Internal Data|game=Tactics Ogre: The Knight of Lodis}}

Revision as of 23:00, 24 October 2022

Chip tiny.png The following article is a ROM map for Tactics Ogre: The Knight of Lodis.

Overall ROM Map

Name Start End Number of Entries Size Per Entry Total Size
Hire Shop 0x622494 0x6224E3 10 8 80
Item Shop 0x6224E4 0x622583 40 4 160
Secret Shop 0x622584 0x62258B 8 1 8
Magic Shop 0x62258C 0x622617 35 4 140



Data Structures

  • Some tables have unknown data bytes at the beginning/end, its possible these tables are offset from there true position.
  • Many tables have an empty entry at the beginning for 'None'. Not all tables have this taken into account yet. If a table has an odd number of entries, this is likely the case.


Hire Shop Data Structure

  • Hire Shop Data data starts at 0x00622494 and ends at 0x006224E3 in the ROM.
  • There are 10 entries, 8 bytes in length each.
  • It's unknown how the game decides which entry to use. (e.g. Mermaids only in Rana, Giants only later in the game, random class every time, etc...)
  • There is no termination data at the end of the table. The length must be hardcoded somewhere else.
Name Length Offset Type Max Value Description
Class ID 1 0x00 uint8 0x54 Class to hire
Unknown 1 0x01 uint8 Unknown Unknown entry. Always 0
Cost 2 0x02 uint16 ?? Base cost to hire the unit
Per Level Cost 2 0x04 uint16 ?? Adds this much gold to the cost per extra level bought
Unknown 1 0x06 uint8 Unknown Unknown entry. Always 0
Unknown 1 0x07 uint8 Unknown Unknown entry. Always 0


Item Shop Data Structure

  • Item Shop Data data starts at 0x006224E4 and ends at 0x00622583 in the ROM.
  • There are 40 entries, 4 bytes in length each.
  • Prices are not stored in this table. They are stored in the item table.
  • The last entry is a termination of (0xff,0xff,0x00,0x00) starting at 0x622580
Name Length Offset Type Max Value Description
Availabilty 1 0x00 uint8 ?? How far into the story the item first appears in the shop
Item ID 1 0x01 uint8 0xBF Item to be sold
Unknown 1 0x02 uint8 Unknown Unknown entry. Always 0
Unknown 1 0x03 uint8 Unknown Unknown entry. Always 0


Secret Item Shop Data Structure

  • The secret shop becomes available in Scabellum after recruiting Deneb
  • Item Shop Data data starts at 0x00622584 and ends at 0x0062258C in the ROM.
  • There are 7 entries, 1 bytes in length each.
  • Prices are not stored in this table. They are stored in the item table.
  • The last entry is a termination of (0xff) at 0x0062258C
Name Length Offset Type Max Value Description
Item ID 1 0x01 uint8 0xBF Item to be sold


Magic Shop Data Structure

  • Magic Shop Data data starts at 0x0062258C and ends at 0x622617 in the ROM.
  • There are 35 entries, 4 bytes in length each.
  • Prices are not stored in this table. They are stored in the abilities table.
  • If the spell is set to the index of an ability, it will not appear.
  • The last entry is a termination of (0xff,0xff,0x00,0x00) starting at 0x622614
Name Length Offset Type Max Value Description
Availabilty 1 0x00 uint8 ?? How far into the story the spell first appears in the shop
Spell ID 1 0x01 uint8 0x7E Spell to be sold
Unknown 1 0x02 uint8 Unknown Unknown entry. Always 0
Unknown 1 0x03 uint8 Unknown Unknown entry. Always 0