Users browsing this thread: 1 Guest(s)
Imp's Mapping (in development)

#7
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
Yeah, I'm having heaps of troubles with setting and resetting palettes for imp'd status on the field map. I was able to get it working for Terra, but only for Terra and only through hard-coding the original and destination palette. Which would mean that characters--when imp'd and reverted--would be returned to a pre-determined palette, rather than whatever palette was last set for them in the event script.

This is because the game code is constantly writing the current field palette as the 'saved' palette to the save RAM. Other than setting up a second set of SRAM bytes for the player characters and saving and referencing them separately (which I'm not sure I could do, and which would cause problems anyway if imp'd during a cutscene that changes palettes), I'm not sure I can get around this.

EDIT: Maybe it could be stored in out-of-battle status $04... it always gets scrubbed down to Float and Dog Block when referenced by the battle engine, so perhaps palette could sit there? EDIT: Nope, that's not going to work. I need another register, dangit! I'm not good enough to code this.

EDIT: In case someone wishes to pick up where I left off, here's what I've learned.
> For Field Sprites, both $0880 and $0881 need to be updated with a new palette. Palette bits are $0E on both of them, you'll want to scrub that by ANDing them with $F1 (possibly storing the result), then OR them with your desired new palette (2*Palette #), and store the result over the original.
Y does skips by 37 and is to be used to check the character statuses ($1614 and $1615). X does skips by 41 and is to be used to change the character field properties ($0880 and $0881)
Below is my code brainstorm. I could not get to execution because I could not think of a viable way to save field palettes ($1F70 through $1F7F) to $1615,Y. The former would have to be loaded in increments of 1, which I can't do because X must load in increments of 41 and Y must load in increments of 37... hence my complaint that I needed another register.
This code brainstorm is intended as a starting point. DO NOT JUST PLOP IT INTO A ROM, IT WILL NOT WORK! If anyone cares to explore the matter further, that's the extent of my understanding. Getting Terra to switch back and forth from two fixed palettes is easy, but getting the entire cast to switch back and forth from a saved palette and the imp palette is a nightmare.
  Find
Quote  



Messages In This Thread
Imp's Mapping (in development) - by C-Dude - 01-10-2021, 06:52 PM
RE: Imp's Mapping (in development) - by Gi Nattak - 01-10-2021, 09:41 PM
RE: Imp's Mapping (in development) - by C-Dude - 01-10-2021, 09:42 PM
RE: Imp's Mapping (in development) - by Lightning - 02-20-2021, 02:33 AM
RE: Imp's Mapping (in development) - by Gi Nattak - 02-20-2021, 03:05 AM
RE: Imp's Mapping (in development) - by C-Dude - 02-20-2021, 08:37 PM
RE: Imp's Mapping (in development) - by C-Dude - 03-11-2021, 10:36 PM
RE: Imp's Mapping (in development) - by Lightning - 03-19-2021, 08:17 PM

Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite