Author Topic: Memory MAP  (Read 21645 times)

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8974
  • Fan Power Advocate
    • View Profile
Re: Memory MAP
« Reply #75 on: November 15, 2008, 02:01:54 pm »
Per Vehek:

Quote
The game seems to load a value from variables starting at 7E967C to determine what sprite assembly size to use in battle. 7E967C seems to represent the sprite assembly size for all three PCs in battle.


In a related matter, we've discovered that it's currently impossible to have characters with Size 1 sprite assembly in the party without serious sprite glitching -- details are in this thread.

Anyone think a remedy for this type of sprite glitching is possible? I think the Size 1 sprite's extra tiles are overlapping the second character's tiles in VRAM. Several times per second (possibly whenever the tiles are refreshed in memory), the situation becomes the reverse -- the second character's tiles become dominant, and the game engine is pulling from the second character to construct the lead (Size 1) character. CT is apparently hard-coded to handle only Size 0 sprites in the party -- all the original player characters have Size 0 sprites after all.

This memory management issue doesn't crop up in battle though, I suppose because the game engine uses some address other than 7E967C to handle Field sprites.

Mauron

  • Guru of Reason
  • Magical Dreamer (+1250)
  • *
  • Posts: 1496
  • Nu-chan
    • View Profile
    • Maurtopia
Re: Memory MAP
« Reply #76 on: April 01, 2009, 06:16:00 pm »
Character byte 26 - Set to 80 to make a character always have berserk status.

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Memory MAP
« Reply #77 on: April 01, 2009, 06:42:54 pm »
Isn't there an item that does that? Maybe when you have that item equipped it sets that bit?

--JP

Mauron

  • Guru of Reason
  • Magical Dreamer (+1250)
  • *
  • Posts: 1496
  • Nu-chan
    • View Profile
    • Maurtopia
Re: Memory MAP
« Reply #78 on: April 01, 2009, 06:50:06 pm »
The Berserker does that, but while equipped it does not set that bit.

Edit: I've examined character byte 26 further, and this is what I've found:

80 - Berserk
40 - Magic Defense
20 - Haste
10 - ???
8 - ???
4 - Protect
2 - ???
1 - ???
« Last Edit: April 02, 2009, 01:16:32 pm by Mauron »

Schala Zeal

  • Radical Dreamer (+2000)
  • *
  • Posts: 2050
  • 7th Elemental Innate
    • View Profile
Re: Memory MAP
« Reply #79 on: February 19, 2017, 09:45:08 pm »
Hmm... are the addresses relative to an offset in RAM or is this for battery save files I can open with a hex editor?

Mauron

  • Guru of Reason
  • Magical Dreamer (+1250)
  • *
  • Posts: 1496
  • Nu-chan
    • View Profile
    • Maurtopia
Re: Memory MAP
« Reply #80 on: February 20, 2017, 12:18:20 am »
Most of these are RAM addresses. My last one is for the 0x50 bytes starting at 7E2600 for each character.

Schala Zeal

  • Radical Dreamer (+2000)
  • *
  • Posts: 2050
  • 7th Elemental Innate
    • View Profile
Re: Memory MAP
« Reply #81 on: February 20, 2017, 01:36:20 am »
I was hoping to do a CT-specific rom corruptor using this info.

Mauron

  • Guru of Reason
  • Magical Dreamer (+1250)
  • *
  • Posts: 1496
  • Nu-chan
    • View Profile
    • Maurtopia
Re: Memory MAP
« Reply #82 on: February 20, 2017, 02:20:45 pm »
The most this would be useful for is a save stat corrupter. Geiger's Offsets would be a much better start on a ROM corrupter.

Schala Zeal

  • Radical Dreamer (+2000)
  • *
  • Posts: 2050
  • 7th Elemental Innate
    • View Profile
Re: Memory MAP
« Reply #83 on: February 20, 2017, 08:48:26 pm »
Darn. I was hoping to make one that can like... swap character graphics in real time.

Mauron

  • Guru of Reason
  • Magical Dreamer (+1250)
  • *
  • Posts: 1496
  • Nu-chan
    • View Profile
    • Maurtopia
Re: Memory MAP
« Reply #84 on: February 21, 2017, 02:30:16 pm »
Real time character graphics swapping might be possible with RAM manipulation, but you'd need to target a specific emulator and palettes would screw up in battle and certain menus, because those load them based on character index, not palette index.

Schala Zeal

  • Radical Dreamer (+2000)
  • *
  • Posts: 2050
  • 7th Elemental Innate
    • View Profile
Re: Memory MAP
« Reply #85 on: February 22, 2017, 07:35:45 am »
Yeah. I doubt the debugger has source code available. Tried it out and it would seem interesting as a corruption engine.

Mauron

  • Guru of Reason
  • Magical Dreamer (+1250)
  • *
  • Posts: 1496
  • Nu-chan
    • View Profile
    • Maurtopia
Re: Memory MAP
« Reply #86 on: September 17, 2017, 11:46:45 pm »
7F01CD - Two byte value for adjusting shop prices. Value/0x100 is the percentage of the final price. Medina Market sets 7F01CE to a random value of 5 or higher at first, and later sets 7F01CD to 00BF, resulting in a 25% reduction.

Technical: The game actually multiplies item prices by the value, then takes the two highest result bytes as the new price.