Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Adds all Status and Resistances to be shown in the Equipment menu
/* Add all Stats and Resistances to the Equipment menu */
import asm65816
import ebpp
import ebpp_std
/*
NOTES:
0xC1AA5D = Part of the main routine of the Equipment selection menu. When this routine exits, it closes the windows associated with the equipment menu.
0xC19F29 = Seems to bring up the equipment selection menu for each character. Like the menu to see the Weapon, Body, Arms, and Other equipments the character has currently equipped.
0xC127EF = Character Select Prompt. Creates a selection between each characters. Used in the player's inventory menu, Ness & Poo's PSI menu, Current Equipment menu, etc.
0xC19437 = Closes the small window that displays the "Who", "Where", and "Which" text on the top left window when you're currently navigating the equipment window.
0xC1A795 = Seems to build the equipment selection menu.
- 0xC1A7A3 = This section helps determine which choice the player selects when they choose the "Weapon", "Body", "Arms", or "Other" equipment. If the player presses the "B" button, it ends the 0xC1A795 routine
-
To keep all of the windows integrity, we need to expand the window configuration table so we can use one extra window to print out the resistances.
0xC3E250 = Window Configuration Table, look in routines to find which routines load this address.
$c105c9 = ASMLoadAddress06(Window_Config_Table)
0xC1A1E8 = Loads the window associated with displaying the current and changed stat values for equipping
RAM 0x7E1AD6 - 0x7E1B16 = Contains data that displays things on the windows and window space. Values are initialized to 0x00 and progressively gets filled with 0xFF for each thing that is a window or appears in a window. If it reaches or goes pass 0x7E1B16, all windows will close forcefully. ROM 0xC40085 handles the window space, if the window space reaches 0x40 (64 bytes) then it will forcefully close all windows and resume the game normally.
Just like how the Status window clears when you press A to see the list of PSI, think of doing this when you enter the equipment menu and selecting the equipments after you choose which equipment type.
ROM 0xC1BB71 seems to be the Status window. When you press B, it returns to the main gameplay menu.
Windows 7, 45 and 52 require the following changes:
7:
Height: 12
Width: 13
X Offset: 18
Y Offset: 1
45:
Height: 12
Width: 14
X Offset: 1
Y Offset: 13
52:
Height: 14
Width: 16
X Offset: 15
Y Offset: 13
ROM 0xC2032B seems to read text and prints them as titles to a window.
Parameters:
A: window ID
X: Length of the text
DPR 0x0E - 0x10: The text itself
Returns:
Nothing
*/
//ROM[0xC40091] = CPY_i (0x0042)
ROM[0xC1AAE0] = {
JMP_l (Close_Equipment_Window)
}
Close_Equipment_Window:{
LDA_i (52)
JSL (0xC3E521) // Close Window
LDA_i (0x002D)
JSL (0xC3E521) // Close Window
LDA_i (6)
JSL (0xC3E521) // Close Window
JSL (Open_Money_Window)
JSL (0xC1DD3B) // Open HP/PP Window
//JSL (0xC134A7) // Open Gameplay Menu
JMP_l (0xC1AAEE)
}
//ROM[0xC40091] = CPY_i (0x00FF)
ROM[0xC1AA68] = JSL (Equip_Routine_Edit1)
Equip_Routine_Edit1:{
JSL (0xC20A20)
JSL (0xC1DD41) // Close the HP/PP window
LDA_i (10)
JSL (0xC3E521) // Close the money window
LDA_i (1)
JSL (0xC3E521) // Close the Gameplay menu
RTL
}
define UnknownJSRSubroutine1 = 0xC1A4BE
ROM[0xC1A4BE] = {
//JSR(0x04EE)
JSR (0x0D7C)
RTL
}
define UnknownJSRSubroutine2 = 0xC1A4C2
ROM[0xC1A4C2] = {
JSR(0x0EB4)
RTL
}
define UnknownJSRSubroutine3 = 0xC1A4C6
ROM[0xC1A4C6] = {
JSR(0x0EFC)
RTL
}
define UnknownJSRSubroutine4 = 0xC1A4CA
ROM[0xC1A4CA] = {
JSR(0x0DF6)
RTL
}
define UnknownJSRSubroutine5 = 0xC1A4BA
ROM[0xC1A4BA] = {
JSR(0x0FEA)
RTL
}
OffenseEquip_Text:
"Offense:[00]"
DefenseEquip_Text:
"Defense:[00]"
SpeedEquip_Text:
"Speed:[00]"
GutsEquip_Text:
"Guts:[00]"
LuckEquip_Text:
"Luck:[00]"
FireEquip_Text:
"Fire:[00]"
FreezeEquip_Text:
"Freeze:[00]"
FlashEquip_Text:
"Flash:[00]"
ParalysisEquip_Text:
"Paralysis:[00]"
HypnosisEquip_Text:
"Hypnosis:[00]"
BrainshockEquip_Text:
"Brainshock:[00]"
Status_Text:
"Status[00]"
Resistances_Text:
"Resistances[00]"
ROM[0xC1A1E8] = {
JSL (Title_Stats_Window)
NOP
NOP
}
//Overwriting old code with this.
ROM[0xC1A1F8] = {
JMP_l(NOROOM)
}
NOROOM:
//Stat names:
// OFFENSE
LDA_i(0x0001)//Load text's vertical positioning.
LDX_i(0x0000)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(OffenseEquip_Text)
LDA_i(0x0008)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// DEFENSE
LDA_i(0x0000)//Load text's vertical positioning.
LDX_i(0x0001)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(DefenseEquip_Text)
LDA_i(0x0008)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// SPEED
LDA_i(0x0009)//Load text's vertical positioning.
LDX_i(0x0002)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(SpeedEquip_Text)
LDA_i(0x0006)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// GUTS
LDA_i(0x000F)//Load text's vertical positioning.
LDX_i(0x0003)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(GutsEquip_Text)
LDA_i(0x0005)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// LUCK
LDA_i(0x000F)//Load text's vertical positioning.
LDX_i(0x0004)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(LuckEquip_Text)
LDA_i(0x0005)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
/*-+-+-+-+-+-+-+-+-+-+OFFENSE-+-+-+-+-+-+-+-+-+-+*/
Offense:
//First stat readings.
LDA_i(0x001C)//Base offense.
STA_d(0x20)
LDA_i(0x0031)//Weapon
STA_d(0x22)
LDA_i(0x0003)//Poo's considered.
STA_d(0x24)
LDA_i(0x001F)//Offense boost.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator
CLC
ADC_d(0x04)//Add character's offense by weapon's offense value.
TAY
STY_d(0x16)//Store modified offense to memory.
LDA_d (0x16)
PHA // Push current Offense stat to the stack
//Preparing text.
LDA_i(0x0029)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0000)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+DELTA OFFENSE-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x001C)//Base offense.
STA_d(0x20)
LDA_i(0x0031)//Weapon
STA_d(0x22)
LDA_i(0x0003)//Poo's considered.
STA_d(0x24)
LDA_i(0x001F)//Offense boost.
STA_d(0x26)
LDA_i(0x0000)
STA_d(0x28)//Weapon
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator
CLC
ADC_d(0x04)//Add character's offense by weapon's offense value.
TAY
STY_d(0x16)//Store modified offense to memory.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Defense) // If the equipment doesn't affect the offense stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Defense)
//Preparing text.
LDA_i(0x0047)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0000)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+-+-+-+-+-+ARROW OFFENSE-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// OFFENSE
LDX_i(0x0000)//
LDA_i(0x0040)///Text positioning.
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+-+-+-+-+-+DEFENSE-+-+-+-+-+-+-+-+-+-+*/
Defense:
LDA_i(0x001D)//Base Defense.
STA_d(0x20)
LDA_i(0x0032)//Body
STA_d(0x22)
LDA_i(0x0003)//Poo's considered.
STA_d(0x24)
LDA_i(0x001F)//Defense boost.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
LDA_i(0x0033)//Arms
STA_d(0x22)
JSL(NewEquipmentStats)
LDA_i(0x0034)//Other
STA_d(0x22)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator
CLC
ADC_d(0x04)//Add character's offense by weapon's offense value.
TAY
STY_d(0x16)//Store modified offense to memory.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x0029)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0001)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+DELTA DEFENSE-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x001D)//Base Defense.
STA_d(0x20)
LDA_i(0x0032)//Body
STA_d(0x22)
LDA_i(0x0003)//Poo's considered.
STA_d(0x24)
LDA_i(0x001F)//Defense boost.
STA_d(0x26)
LDA_i(0x0001)
STA_d(0x28)//Body
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
LDA_i(0x0002)//Arms
STA_d(0x28)
JSL(NewEquipmentStats)
LDA_i(0x0003)//Other
STA_d(0x28)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator
CLC
ADC_d(0x04)//Add character's offense by weapon's offense value.
TAY
STY_d(0x16)//Store modified offense to memory.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Speed) // If the equipment doesn't affect the offense stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Speed)
//Preparing text.
LDA_i(0x0047)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0001)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+ARROW DEFENSE-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// DEFENSE
LDX_i(0x0001)//
LDA_i(0x0040)///Text positioning.
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+-+-+-+-+-+SPEED-+-+-+-+-+-+-+-+-+-+*/
Speed:
LDA_i(0x001E)//Base Speed.
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0021)//Speed boost.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDX_d(0x12)//Load character offset.
LDA_x(0x9A25)//Load speed boosts from capsules.
AND_i(0x00FF)
CLC
ADC_d(0x16)//Add with modified value.
STA_d(0x16)//Replace it with modified value.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x0029)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0002)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+DELTA SPEED-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x001E)//Base Speed.
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0021)//Speed boost.
STA_d(0x26)
LDA_i(0x0001)//"equipment selection" stat (Weapon).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDX_d(0x12)//Load character offset.
LDA_x(0x9A25)//Load speed boosts from capsules.
AND_i(0x00FF)
CLC
ADC_d(0x16)//Add with modified value.
STA_d(0x16)//Replace it with modified value.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Guts) // If the equipment doesn't affect the offense stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Guts)
//Preparing text.
LDA_i(0x0047)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0002)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+ARROW SPEED-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// SPEED
LDX_i(0x0002)//
LDA_i(0x0040)///Text positioning.
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+-+-+-+-+-+GUTS-+-+-+-+-+-+-+-+-+-+*/
Guts:
LDA_i(0x001F)//Base Guts.
STA_d(0x20)
LDA_i(0x0031)//Weapon
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0021)//Guts boost.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDX_d(0x12)//Load character offset.
LDA_x(0x9A26)//Load Guts boosts from capsules.
AND_i(0x00FF)
CLC
ADC_d(0x16)//Add with modified value.
STA_d(0x16)//Replace it with modified value.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x0029)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0003)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+DELTA GUTS-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x001F)//Base Guts.
STA_d(0x20)
LDA_i(0x0031)//Weapon
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0021)//Guts boost.
STA_d(0x26)
LDA_i(0x0000)//"equipment selection" stat (Weapon).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDX_d(0x12)//Load character offset.
LDA_x(0x9A26)//Load Guts boosts from capsules.
AND_i(0x00FF)
CLC
ADC_d(0x16)//Add with modified value.
STA_d(0x16)//Replace it with modified value.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Luck) // If the equipment doesn't affect the offense stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Luck)
//Preparing text.
LDA_i(0x0047)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0003)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+ARROW GUTS-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// GUTS
LDX_i(0x0003)//
LDA_i(0x0040)///Text positioning.
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+-+-+-+-+-+LUCK-+-+-+-+-+-+-+-+-+-+*/
Luck:
LDA_i(0x0020)//Base Luck.
STA_d(0x20)
LDA_i(0x0033)//Arms armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0021)//Luck boost.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
LDA_i(0x0034)//Other armor
STA_d(0x22)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDX_d(0x12)//Load character offset.
LDA_x(0x9A29)//Load Luck boosts from capsules.
AND_i(0x00FF)
CLC
ADC_d(0x16)//Add with modified value.
STA_d(0x16)//Replace it with modified value.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x0029)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0004)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+DELTA LUCK-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x0020)//Base Luck.
STA_d(0x20)
LDA_i(0x0033)//Arms armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0021)//Luck boost.
STA_d(0x26)
LDA_i(0x0002)//"equipment selection" stat (Arms).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
JSL(NewEquipmentStats)
LDA_i(0x0003)//"equipment selection" stat (Other).
STA_d(0x28)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDX_d(0x12)//Load character offset.
LDA_x(0x9A29)//Load Luck boosts from capsules.
AND_i(0x00FF)
CLC
ADC_d(0x16)//Add with modified value.
STA_d(0x16)//Replace it with modified value.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (NOROOM_End) // If the equipment doesn't affect the offense stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(NOROOM_End)
//Preparing text.
LDA_i(0x0047)//Text's horizontal positioning.
STA_d(0x20)
LDA_i(0x0004)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput)
/*-+-+-+-+-+-+-+-+-+-+ARROW LUCK-+-+-+-+-+-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// LUCK
LDX_i(0x0004)//
LDA_i(0x0040)///Text positioning.
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
NOROOM_End:
JSL (0xC3E4CA)
JSL (New_Resistance_Window_Display)
JMP_l(0xC1A776) // JMP_l (0xC1A772)
/*-+-+-+-+-+-+-+-+-+-+RESISTANCE WINDOW-+-+-+-+-+-+-+-+-+-+*/
New_Resistance_Window_Display: {
LDA_i (52)
STA_a (0x8958) // Make window 52 the focus window
JSL (0xC1DD47) // Open window 52
JSL (Title_Resistance_Window)
JSL (0xC3E4E0) // Enable things to be written to the window
LDA_i (3)
JSL (UnknownJSRSubroutine2) // position of the numbers right of the stat
//-----Main part of this routine-----
// Adding Fire Resistance to the Equipment Stat Window
LDA_i(0x001F)//Load text's vertical positioning.
LDX_i(0x0000)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(FireEquip_Text)
LDA_i(0x0005)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// Adding Freeze Resistance to the Equipment Stat Window
LDA_i(0x0012)//Load text's vertical positioning.
LDX_i(0x0001)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(FreezeEquip_Text)
LDA_i(0x0007)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// Adding Flash Resistance to the Equipment Stat Window
LDA_i(0x0019)//Load text's vertical positioning.
LDX_i(0x0002)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(FlashEquip_Text)
LDA_i(0x0006)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// Adding Paralysis Resistance to the Equipment Stat Window
LDA_i(0x0008)//Load text's vertical positioning.
LDX_i(0x0003)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(ParalysisEquip_Text)
LDA_i(0x000A)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// Adding Hypnosis Resistance to the Equipment Stat Window
LDA_i(0x0009)//Load text's vertical positioning.
LDX_i(0x0004)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(HypnosisEquip_Text)
LDA_i(0x0009)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
// Adding Brainshock Resistance to the Equipment Stat Window
LDA_i(0x0000)//Load text's vertical positioning.
LDX_i(0x0005)//Load text's horizontal positioning
JSL(0xC43D75)//Set positioning using A and X parameters.
ASMLoadAddress0E(BrainshockEquip_Text)
LDA_i(0x000B)//Text's length.
JSL(UnknownJSRSubroutine3)//Print text?
/*-+-+-+-+-+FIRE RESISTANCE-+-+-+-+-+*/
Fire:
/*
Only "Body" and "Other" types of equipment support Fire Resistances
*/
LDA_i(0x004F)//Base Fire Resistance. It's actually is the border graphics of the HP/PP, but it's always 0 and that's what I need for the "Base Fire Resistance" since each character doesn't have resistance to elements initially.
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0052) // The actual Fire Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
LDA_i(0x0034)//Other
STA_d(0x22)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x002F)//Text's horizontal positioning. $33F637
STA_d(0x20)
LDA_i(0x0000)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+DELTA FIRE RESISTANCE-+-+-+-+-+*/
/*
Only "Body" and "Other" types of equipment support Fire Resistances
*/
LDA_i(0x004F)//Base Fire Resistance. It's actually the HP/PP border graphics, but it's always set to 0 so it's a good solution to the "Base Fire Resistance"
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection
STA_d(0x26)
LDA_i(0x0001)//"equipment selection" stat (Body).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0052) // The actual Fire Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
LDA_i(0x0003)//Other
STA_d(0x28)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Freeze) // If the equipment doesn't affect the offense stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Freeze)
//Preparing text.
LDA_i(0x004F)//Text's horizontal positioning. $33F68B
STA_d(0x20)
LDA_i(0x0000)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+ARROW FIRE RESISTANCE-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// FIRE RESISTANCE
LDX_i(0x0000)//
LDA_i(0x0050)///Text positioning. $33F6A3
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+FREEZE RESISTANCE-+-+-+-+-+*/
Freeze:
/*
Only "Body" and "Other" types of equipment support Freeze Resistances
*/
LDA_i(0x004F)//Base Freeze Resistance. It's actually is the border graphics of the HP/PP, but it's always 0 and that's what I need for the "Base Fire Resistance" since each character doesn't have resistance to elements initially.
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0053) // The actual Freeze Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
LDA_i(0x0034)//Other
STA_d(0x22)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x002F)//Text's horizontal positioning. $33F6F1
STA_d(0x20)
LDA_i(0x0001)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+DELTA FREEZE RESISTANCE-+-+-+-+-+*/
/*
Only "Body" and "Other" types of equipment support Freeze Resistances
*/
LDA_i(0x004F)//Base Freeze Resistance. It's actually the HP/PP border graphics, but it's always set to 0 so it's a good solution to the "Base Fire Resistance"
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection
STA_d(0x26)
LDA_i(0x0001)//"equipment selection" stat (Body).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0053) // The actual Freeze Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
LDA_i(0x0003)//Other
STA_d(0x28)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Flash) // If the equipment doesn't affect the offense stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Flash)
//Preparing text.
LDA_i(0x004F)//Text's horizontal positioning. $33F745
STA_d(0x20)
LDA_i(0x0001)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+ARROW FREEZE RESISTANCE-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// FREEZE RESISTANCE
LDX_i(0x0001)//
LDA_i(0x0050)///Text positioning. $33F75D
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+FLASH RESISTANCE-+-+-+-+-+*/
Flash:
/*
Only "Body" and "Other" types of equipment support Flash Resistances
*/
LDA_i(0x004F)//Base Flash Resistance. It's actually is the border graphics of the HP/PP, but it's always 0 and that's what I need for the "Base Fire Resistance" since each character doesn't have resistance to elements initially.
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0054) // The actual Flash Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
LDA_i(0x0034)//Other
STA_d(0x22)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x002F)//Text's horizontal positioning. $$33F7AE
STA_d(0x20)
LDA_i(0x0002)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+DELTA FLASH RESISTANCE-+-+-+-+-+*/
/*
Only "Body" and "Other" types of equipment support Flash Resistances
*/
LDA_i(0x004F)//Base Flash Resistance. It's actually the HP/PP border graphics, but it's always set to 0 so it's a good solution to the "Base Fire Resistance"
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection
STA_d(0x26)
LDA_i(0x0001)//"equipment selection" stat (Body).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0054) // The actual Flash Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
LDA_i(0x0003)//Other
STA_d(0x28)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Paralysis) // If the equipment doesn't affect the stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Paralysis)
//Preparing text.
LDA_i(0x004F)//Text's horizontal positioning. $33F7FF
STA_d(0x20)
LDA_i(0x0002)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+ARROW FLASH RESISTANCE-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// Flash Resistance arrow
LDX_i(0x0002)//
LDA_i(0x0050)///Text positioning. $33F817
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+PARALYSIS RESISTANCE-+-+-+-+-+*/
Paralysis:
/*
Only "Body" and "Other" types of equipment support Paralysis Resistances
*/
LDA_i(0x004F)//Base Paralysis Resistance. It's actually is the border graphics of the HP/PP, but it's always 0 and that's what I need for the "Base Fire Resistance" since each character doesn't have resistance to elements initially.
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0055) // The actual Flash Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
LDA_i(0x0034)//Other
STA_d(0x22)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x002F)//Text's horizontal positioning. $33F865
STA_d(0x20)
LDA_i(0x0003)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+DELTA PARALYSIS RESISTANCE-+-+-+-+-+*/
/*
Only "Body" and "Other" types of equipment support Flash Resistances
*/
LDA_i(0x004F)//Base Flash Resistance. It's actually the HP/PP border graphics, but it's always set to 0 so it's a good solution to the "Base Fire Resistance"
STA_d(0x20)
LDA_i(0x0032)//Body armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection
STA_d(0x26)
LDA_i(0x0001)//"equipment selection" stat (Body).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0055) // The actual Flash Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
LDA_i(0x0003)//Other
STA_d(0x28)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Hypnosis) // If the equipment doesn't affect the stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Hypnosis)
//Preparing text.
LDA_i(0x004F)//Text's horizontal positioning. $33F8B9
STA_d(0x20)
LDA_i(0x0003)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+ARROW PARALYSIS RESISTANCE-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// Paralysis Resistance arrow
LDX_i(0x0003)//
LDA_i(0x0050)///Text positioning. $33F8D1
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+HYPNOSIS RESISTANCE-+-+-+-+-+*/
Hypnosis:
/*
Only "Arms" types of equipment support Hypnosis Resistances
*/
LDA_i(0x004F)//Base Hypnosis Resistance. It's actually is the border graphics of the HP/PP, but it's always 0 and that's what I need for the "Base Fire Resistance" since each character doesn't have resistance to elements initially.
STA_d(0x20)
LDA_i(0x0033)//Arms armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0056) // The actual Hypnosis Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
LDA_d (0x16)
PHA
//Preparing text.
LDA_i(0x002F)//Text's horizontal positioning. $33F916
STA_d(0x20)
LDA_i(0x0004)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+DELTA HYPNOSIS RESISTANCE-+-+-+-+-+*/
/*
Only "Arms" types of equipment support Hypnosis Resistances
*/
LDA_i(0x004F)//Base Hypnosis Resistance. It's actually the HP/PP border graphics, but it's always set to 0 so it's a good solution to the "Base Fire Resistance"
STA_d(0x20)
LDA_i(0x0033)//Arms armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection
STA_d(0x26)
LDA_i(0x0002)//"equipment selection" stat (Arms).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0056) // The actual Hypnosis Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
TAY
STY_d(0x16)//Store modified stat to memory.
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Brainshock) // If the equipment doesn't affect the stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Brainshock)
//Preparing text.
LDA_i(0x004F)//Text's horizontal positioning. $33F961
STA_d(0x20)
LDA_i(0x0004)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+ARROW HYPNOSIS RESISTANCE-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// Hypnosis Resistance arrow
LDX_i(0x0004)//
LDA_i(0x0050)///Text positioning. $33F979
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
/*-+-+-+-+-+BRAINSHOCK RESISTANCE-+-+-+-+-+*/
Brainshock:
/*
Only "Arms" types of equipment support Hypnosis Resistances
*/
LDA_i(0x004F)//Base Hypnosis Resistance. It's actually is the border graphics of the HP/PP, but it's always 0 and that's what I need for the "Base Fire Resistance" since each character doesn't have resistance to elements initially.
STA_d(0x20)
LDA_i(0x0033)//Arms armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection.
STA_d(0x26)
LDA_i(0xFFFF)
STA_d(0x28)//Not "equipment selection" stat.
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0056) // The actual Hypnosis Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
JSL (Calculate_Brainshock_Res)
STA_d (0x16)
PHA
//Preparing text.
LDA_i(0x002F)//Text's horizontal positioning. $33F9BF
STA_d(0x20)
LDA_i(0x0005)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
/*-+-+-+-+-+DELTA BRAINSHOCK RESISTANCE-+-+-+-+-+*/
/*
Only "Arms" types of equipment support Hypnosis Resistances
*/
LDA_i(0x004F)//Base Hypnosis Resistance. It's actually the HP/PP border graphics, but it's always set to 0 so it's a good solution to the "Base Fire Resistance"
STA_d(0x20)
LDA_i(0x0033)//Arms armor
STA_d(0x22)
LDA_i(0x0004)//Poo's not considered.
STA_d(0x24)
LDA_i(0x0022)//Elemental Protection
STA_d(0x26)
LDA_i(0x0002)//"equipment selection" stat (Arms).
STA_d(0x28)
STZ_d(0x04)//Zero memory responsible for holding stat modifying value.
LDA_i (0x0056) // The actual Hypnosis Resistance Rank, needed this for the upcomming routine.
STA_d (0x0C)
JSL(NewEquipmentStats)
//Sum the equipment increases for a given stat.
LDY_d(0x16)//Load character's base stat.
TYA//Transfer to accumulator.
CLC
ADC_d(0x04)//Add character's base stat by the sum of all relevant equipments' stat increase values.
JSL (Calculate_Brainshock_Res)
STA_d (0x16)
// Checks to see if the stat delta is different
PLA
CMP_d (0x16)
BEQ_a (Return) // If the equipment doesn't affect the stat, branch
// If we are just at the regular equipment menu, then just print the current stat and not the arrow and delta stat
LDA_a(0x9CD4)
BEQ_a(Return)
//Preparing text.
LDA_i(0x004F)//Text's horizontal positioning. $33FA0D
STA_d(0x20)
LDA_i(0x0005)//Text's vertical positioning.
STA_d(0x22)
JSL(NewEquipmentStatsOutput_Elemental)
LDA_a(0x9CD4)
BEQ_a(Return)
/*-+-+-+-+-+ARROW BRAINSHOCK RESISTANCE-+-+-+-+-+*/
LDA_i(0x0001)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
// Brainshock Resistance arrow
LDX_i(0x0005)//
LDA_i(0x0050)///Text positioning. $33FA2D
JSL(0xC43D75)//Set positioning.
LDA_i(0x014E)//Load index for right-arrow symbol.
JSL(0xC43F77)//Print it?
LDA_i(0x0000)//Text palette effect?
JSL(UnknownJSRSubroutine5)//Apply it?
Return:
JSL (0xC3E4CA) // Print the items to the window.
//LDA_i (0x002D)
//STA_a (0x8958) // Set window focus
RTL
}
/*-+-+-+-+-+-+-+-+-+-+ROUTINES-+-+-+-+-+-+-+-+-+-+*/
NewEquipmentStats:
LDA_d(0x18)//Load character number to Accumulator.
STA_d(0x02)//Store to different location in memory.
LDY_i(0x005F)//Load multiplicand to Y.
JSL(0xC08FF7)//Multiply A by Y.
STA_d(0x12)
CLC
ADC_d(0x20)//Add base stat offset.
TAX//Transfer A to X
LDA_x(0x99CE)//Load target character's base stat.
AND_i(0x00FF)//Clear high byte.
TAY//Transfer base stat to Y.
STY_d(0x16)//Store base stat to memory.
LDA_d(0x12)
CLC
ADC_d(0x22)//Add equipment type offset.
TAX
LDA_d(0x28)
CMP_i(0x0004)
BCC_a(NewEquipmentStats_Skip)
LDA_x(0x99CE)//Load equipped item's inventory slot number (0 if nothing).
BRA_a(NewEquipmentStats_CheckIfZero)
NewEquipmentStats_Skip:
TAX
LDA_x(0x9CD0)
NewEquipmentStats_CheckIfZero:
AND_i(0x00FF)//Clear high byte.
STA_d(0x0A)
BEQ_a(NewEquipmentStats_End)//Branch if nothing equipped in this slot.
LDX_i(0x0000) //
STX_d(0x14) ///Store 0 to memory.
LDA_d(0x02)//Load character number.
CMP_d(0x24)//If not character set in the parameters...
BNE(0x05)//...Branch
LDX_i(0x0001)//It's this character, replace 0 with 1 for X.
STX_d(0x14)//Store X to memory.
LDA_d(0x0A)//Load item slot number.
DEC//Decrement by 1 (preparing for multiplication.)
STA_d(0x02)//Store result to memory.
LDA_d(0x12)//Load character stat pointer offset (varies depending on character)
CLC //l
ADC_i(0x99F1) //|
CLC //|
ADC_d(0x02) //|Load equipped item number.
TAX //|
LDA_x(0x0000) //|
AND_i(0x00FF) //l
LDY_i(0x0027)//Item entry size loaded to Y.
JSL(0xC08FF7)//Multiply weapon number with item entry size.
LDX_d(0x14)//Load 1 (if Poo) or Load 0 (if anyone else)
STX_d(0x02)//Store X to memory(different location).
CLC
ADC_d(0x02)//Add (if Poo) value to product.
CLC
ADC_d(0x26)//Add offset value (result is a pointer to equipped weapon's relevant stat increase value (or Poo's))
TAX
LDA_xl(0xD55000)//Load equipment's stat value (or Poo's)
AND_i(0x00FF)
// Custom Code: Check if the stat is an elemental resistance one
STA_d (0x1E) // If DPR 0x26 = 0x0022, then store the Elemental resistance to DPR 0x1E
LDA_d (0x26)
CMP_i (0x0022)
BEQ_a (Check_Equipment_Type) // If so, then branch
LDA_d (0x1E)
BRA_a (To_Orig_Code) // Else, go to the main code
Check_Equipment_Type:
LDA_d(0x18)//Load character number to Accumulator.
LDY_i(0x005F)//Load multiplicand to Y.
JSL(0xC08FF7)//Multiply A by Y.
CLC
ADC_i (0x99CE) // Add the character entry table address
CLC
ADC_d (0x0C) // Add the offset of the Element Resist we want
TAX
LDA_x (0x0000) // Get current character Elemental Resist Rank
AND_i (0x00FF) // Get low byte
STA_d (0x1C) // Current Elemental Rank on the Character
LDA_d (0x28)
CMP_i (2)
BEQ_a (Arms_Resistance)
LDA_d (0x22)
CMP_i (0x0033)
BEQ_a (Arms_Resistance)
BRA_a (Body_Other_Resistance)
Arms_Resistance:
// Used for Hypnosis protection mainly. Bit pattern is similar to fire's, just that it doesn't have Rank 3 resistance normally. Only Brainshock has Rank 3 resistance. Hypnosis and Brainshock have inverse relationship.
LDA_d (0x1E)
ASL
ASL
ASL
ASL
STA_d (0x1E)
BRA_a (Flash_Resistance)
// Checks to see if we are taking either Fire, Freeze, Flash, or Paralysis Resistance
Body_Other_Resistance:
LDA_d (0x0C)
CMP_i (0x0052)
BEQ_a (Fire_Resistance)
CMP_i (0x0053)
BEQ_a (Freeze_Resistance)
CMP_i (0x0054)
BEQ_a (Flash_Resistance)
BRA_a (Paralysis_Resistance)
Fire_Resistance:
LDA_d (0x1E)
AND_i (0x0003)
STA_d (0x1E)
BRA_a (Elemental_Rank_Display)
Freeze_Resistance:
LDA_d (0x1E)
LSR
LSR
AND_i (0x0003)
STA_d (0x1E)
BRA_a (Elemental_Rank_Display)
Flash_Resistance:
LDA_d (0x1E)
LSR
LSR
LSR
LSR
AND_i (0x0003)
STA_d (0x1E)
BRA_a (Status_Rank_Display)
Paralysis_Resistance:
LDA_d (0x1E)
LSR
LSR
LSR
LSR
LSR
LSR
AND_i (0x0003)
STA_d (0x1E)
BRA_a (Status_Rank_Display)
// This will display the total Resistance of the Element in percentages
Elemental_Rank_Display:
LDA_d (0x04) // Subtotal of the resistances
CMP_i (0)
BEQ_a (Rank_0_Check)
CMP_i (30)
BEQ_a (Rank_1_Check)
CMP_i (60)
BEQ_a (Rank_2_Check)
BRA_a (Rank_3_Check)
Rank_0_Check:
ORA_i (0xF000)
STA_d (0x04)
BRA_a (Elemental_Rank_Display2)
Rank_1_Check:
ORA_i (0xE000)
STA_d (0x04)
BRA_a (Elemental_Rank_Display2)
Rank_2_Check:
ORA_i (0xC000)
STA_d (0x04)
BRA_a (Elemental_Rank_Display2)
Rank_3_Check:
ORA_i (0x8000)
STA_d (0x04)
BRA_a (Elemental_Rank_Display2)
Elemental_Rank_Display2:
LDA_d (0x1E) // Elemental Rank of Equipment
CMP_i (0)
BEQ_a (Rank_0_Val_Display)
CMP_i (1)
BEQ_a (Rank_1_Val_Display)
CMP_i (2)
BEQ_a (Rank_2_Val_Display)
BRA_a (Rank_3_Val_Display)
Rank_0_Val_Display:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_0_Elemental)
Rank_1_Val_Display:
// Checks the current Elemental Rank for that character and compares that against the rank of the current equipment to get the partial sum of the percentage resistance so the main routine can add them together and output the correct value.
LDA_d (0x04)
AND_i (0x80FF)
CMP_d (0x04)
BEQ_a (Rank_0_Val_Display)
LDA_d (0x04)
AND_i (0xC0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Val_Display_35)
LDA_d (0x04)
AND_i (0xE0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Val_Display_30)
BRA_a (Rank_1_Val_Display_30)
Rank_1_Val_Display_30:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_1_Display_Normally)
Rank_1_Val_Display_35:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_1_Display_Max)
Rank_2_Val_Display:
LDA_d (0x04)
AND_i (0x80FF)
CMP_d (0x04)
BEQ_a (Rank_0_Val_Display)
LDA_d (0x04)
AND_i (0xC0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Val_Display_35)
LDA_d (0x04)
AND_i (0xE0FF)
CMP_d (0x04)
BEQ_a (Rank_2_Val_Display_65)
BRA_a (Rank_2_Val_Display_60)
Rank_2_Val_Display_60:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_2_Display_Normally)
Rank_2_Val_Display_65:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_2_Display_Max)
Rank_3_Val_Display:
LDA_d (0x04)
AND_i (0x80FF)
CMP_d (0x04)
BEQ_a (Rank_0_Val_Display)
LDA_d (0x04)
AND_i (0xC0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Val_Display_35)
LDA_d (0x04)
AND_i (0xE0FF)
CMP_d (0x04)
BEQ_a (Rank_2_Val_Display_65)
BRA_a (Rank_3_Val_Display_95)
Rank_3_Val_Display_95:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_3_Display_Normally)
Rank_0_Elemental:
LDA_i (0)
BRA_a (To_Orig_Code)
Rank_1_Display_Normally:
LDA_i (30)
BRA_a (To_Orig_Code)
Rank_1_Display_Max:
LDA_i (35)
BRA_a (To_Orig_Code)
Rank_2_Display_Normally:
LDA_i (60)
BRA_a (To_Orig_Code)
Rank_2_Display_Max:
LDA_i (65)
BRA_a (To_Orig_Code)
Rank_3_Display_Normally:
LDA_i (95)
BRA_a (To_Orig_Code)
//-----Status Rank Calculations-----
Status_Rank_Display:
LDA_d (0x04) // Subtotal of the resistances
CMP_i (0)
BEQ_a (Rank_0_Status_Check)
CMP_i (50)
BEQ_a (Rank_1_Status_Check)
CMP_i (90)
BEQ_a (Rank_2_Status_Check)
BRA_a (Rank_3_Status_Check)
Rank_0_Status_Check:
ORA_i (0xF000)
STA_d (0x04)
BRA_a (Status_Rank_Display2)
Rank_1_Status_Check:
ORA_i (0xE000)
STA_d (0x04)
BRA_a (Status_Rank_Display2)
Rank_2_Status_Check:
ORA_i (0xC000)
STA_d (0x04)
BRA_a (Status_Rank_Display2)
Rank_3_Status_Check:
ORA_i (0x8000)
STA_d (0x04)
BRA_a (Status_Rank_Display2)
Status_Rank_Display2:
LDA_d (0x1E) // Status Rank of Equipment
CMP_i (0)
BEQ_a (Rank_0_Status_Val_Display)
CMP_i (1)
BEQ_a (Rank_1_Status_Val_Display)
CMP_i (2)
BEQ_a (Rank_2_Status_Val_Display)
BRA_a (Rank_3_Status_Val_Display)
Rank_0_Status_Val_Display:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_0_Status)
Rank_1_Status_Val_Display:
// Checks the current Status Rank for that character and compares that against the rank of the current equipment to get the partial sum of the percentage resistance so the main routine can add them together and output the correct value.
LDA_d (0x04)
AND_i (0x80FF)
CMP_d (0x04)
BEQ_a (Rank_0_Status_Val_Display)
LDA_d (0x04)
AND_i (0xC0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Status_Val_Display_10)
LDA_d (0x04)
AND_i (0xE0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Status_Val_Display_40)
BRA_a (Rank_1_Status_Val_Display_50)
Rank_1_Status_Val_Display_50:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_1_Status_Display_Normally1)
Rank_1_Status_Val_Display_40:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_1_Status_Display_Normally2)
Rank_1_Status_Val_Display_10:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_1_Status_Display_Max)
Rank_2_Status_Val_Display:
LDA_d (0x04)
AND_i (0x80FF)
CMP_d (0x04)
BEQ_a (Rank_0_Status_Val_Display)
LDA_d (0x04)
AND_i (0xC0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Status_Val_Display_10)
LDA_d (0x04)
AND_i (0xE0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Status_Val_Display_50)
BRA_a (Rank_2_Status_Val_Display_90)
Rank_2_Status_Val_Display_90:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_2_Status_Display_Normally)
Rank_3_Status_Val_Display:
LDA_d (0x04)
AND_i (0x80FF)
CMP_d (0x04)
BEQ_a (Rank_0_Status_Val_Display)
LDA_d (0x04)
AND_i (0xC0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Status_Val_Display_10)
LDA_d (0x04)
AND_i (0xE0FF)
CMP_d (0x04)
BEQ_a (Rank_1_Status_Val_Display_50)
BRA_a (Rank_3_Status_Val_Display_100)
Rank_3_Status_Val_Display_100:
LDA_d (0x04)
AND_i (0x00FF)
STA_d (0x04)
BRA_a (Rank_3_Status_Display_Normally)
Rank_0_Status:
LDA_i (0)
BRA_a (To_Orig_Code)
Rank_1_Status_Display_Normally1: // When character has Rank 0 resistance
LDA_i (50)
BRA_a (To_Orig_Code)
Rank_1_Status_Display_Normally2: // When character has Rank 1 Resistance
LDA_i (40)
BRA_a (To_Orig_Code)
Rank_1_Status_Display_Max: // When character has Rank 2 Resistance
LDA_i (10)
BRA_a (To_Orig_Code)
Rank_2_Status_Display_Normally: // When character has Rank 0 Resistance
LDA_i (90)
BRA_a (To_Orig_Code)
Rank_3_Status_Display_Normally: // When character has Rank 0 Resistance
LDA_i (100)
BRA_a (To_Orig_Code)
// Back to original code from the_kirby
To_Orig_Code:
SEC //l
SBC_i(0x0080) //|Convert equipment stat value to signed integer?
EOR_i(0xFF80) //l
CLC
ADC_d(0x04)
STA_d(0x04)//Store to memory.
BRA_a (NewEquipmentStats_End)
NewEquipmentStats_End:
RTL
NewEquipmentStatsOutput:
LDA_i(0x0001)
STA_a(0x5E71)
LDA_d(0x20)//
LDX_d(0x22)///Set text positioning.
JSL(0xC43D75)
LDY_d(0x16)//Load modified offense.
STY_d(0x04)//Store to different location in memory.
LDA_i(0x0000)
CLC
SBC_d(0x04)
BVC(0x04)
BPL(0x09)
BRA(0x02)
BMI(0x05)
LDA_i(0x0000)
BRA(0x1A)
TYA
CLC
SBC_i(0x00FF)
BVC(0x04)
BPL(0x09)
BRA(0x02)
BMI(0x05)
LDX_i(0x00FF)
BRA(0x07)
TYA
REP(0x20)
AND_i(0x00FF)
TAX
TXA
STA_d(0x06)
STZ_d(0x08)
BPL(0x02)
DEC_d(0x08)
LDA_d(0x06)
STA_d(0x0E)
LDA_d(0x08)
STA_d(0x10)
JSL(UnknownJSRSubroutine4)
STZ_a(0x5E71)
RTL
Percent_Sign:
"[BF]" eob
NewEquipmentStatsOutput_Elemental:
LDA_i(0x0001)
STA_a(0x5E71)
LDA_d(0x20)//
LDX_d(0x22)///Set text positioning.
JSL(0xC43D75)
LDY_d(0x16)//Load modified offense.
STY_d(0x04)//Store to different location in memory.
LDA_i(0x0000)
CLC
SBC_d(0x04)
BVC(0x04)
BPL(0x09)
BRA(0x02)
BMI(0x05)
LDA_i(0x0000)
BRA(0x1A)
TYA
CLC
SBC_i(0x00FF)
BVC(0x04)
BPL(0x09)
BRA(0x02)
BMI(0x05)
LDX_i(0x00FF)
BRA(0x07)
TYA
REP(0x20)
AND_i(0x00FF)
TAX
TXA
STA_d(0x06)
STZ_d(0x08)
BPL(0x02)
DEC_d(0x08)
LDA_d(0x06)
STA_d(0x0E)
LDA_d(0x08)
STA_d(0x10)
JSL(Print_Number)
BText(Percent_Sign)
STZ_a(0x5E71)
RTL
// Copied straight from EB
Print_Number: {
REP (0x31)
PHD
TDC
ADC_i (0xFFE8)
TCD
LDA_d (0x26) // Load DPR 0x0E from previous routine
STA_d (0x0A) // Store it to DPR 0x0A
LDA_d (0x28) // Load DPR 0x10 from previous routine
STA_d (0x0C) // Store it to DPR 0x0C
LDA_a (0x8958) // Load focused window
CMP_i (0xFFFF) // Check to see if have a current focused window
BNE_a (UNKNOWN0)// If so, then we branch
BRA_a (Return) // Else, we return
UNKNOWN0:
LDA_i (0x967F) // Load
STA_d (0x06)
LDA_i (0xFFFF)
STA_d (0x08)
LDA_d (0x06)
CMP_d (0x0A)
LDA_d (0x08)
SBC_d (0x0C)
BCS_a (UNKNOWN1)
LDA_d (0x06)
STA_d (0x0A)
LDA_d (0x08)
STA_d (0x0C)
UNKNOWN1:
LDA_a (0x8958)
ASL
TAX
LDA_x (0x88E4)
LDY_i (0x0052)
JSL (0xC08FF7)
CLC
ADC_i (0x8650)
STA_d (0x16)
LDA_d (0x0A)
STA_d (0x06)
LDA_d (0x0C)
STA_d (0x08)
LDA_d (0x06)
STA_d (0x0E)
LDA_d (0x08)
STA_d (0x10)
JSL (UnknownJSRSubroutine1)
TAX
STX_d (0x14)
STX_d (0x02)
LDA_i (0x0007)
SEC
SBC_d (0x02)
CLC
ADC_i (0x895A)
TAY
STY_d (0x12)
LDA_d (0x16)
TAX
LDA_x (0x0012)
AND_i (0x00FF)
STA_d (0x16)
AND_i (0x0080)
BNE_a (UNKNOWN4)
LDA_d (0x16)
AND_i (0x00FF)
INC
LDX_d (0x14)
STX_d (0x02)
CMP_d (0x02)
BCS_a (UNKNOWN2)
TXA
UNKNOWN2:
STX_d (0x02)
SEC
SBC_d (0x02)
STA_d (0x04)
ASL
ADC_d (0x04)
ASL
JSL (0xC43D95)
BRA_a (UNKNOWN4)
UNKNOWN3:
LDY_d (0x12)
LDA_y (0x0000)
AND_i (0x00FF)
CLC
ADC_i (0x0060)
INY
STY_d (0x12)
JSL (0xC10C86)
LDX_d (0x14)
DEX
STX_d (0x14)
UNKNOWN4:
LDX_d (0x14)
BNE_a (UNKNOWN3)
Return:
PLD
RTL
}
Calculate_Brainshock_Res: {
CMP_i (0)
BEQ_a (Brainshock_Rank3)
CMP_i (50)
BEQ_a (Brainshock_Rank2)
CMP_i (90)
BEQ_a (Brainshock_Rank1)
BRA_a (Brainshock_Rank0)
Brainshock_Rank3:
LDA_i (100)
BRA_a (Return)
Brainshock_Rank2:
LDA_i (90)
BRA_a (Return)
Brainshock_Rank1:
LDA_i (50)
BRA_a (Return)
Brainshock_Rank0:
LDA_i (0)
Return:
RTL
}
//-------------------------------------
Open_Money_Window: {
LDA_i (10)
JSL (0xC1DD47)
LDA_i (5)
JSL (UnknownJSRSubroutine6)
JSL (0xC3E4D4)
JSL (0xC1DD53)
LDA_a (0x9831)
STA_d (0x06)
LDA_a (0x9833)
STA_d (0x08)
LDA_d (0x06)
STA_d (0x0E)
LDA_d (0x08)
STA_d (0x10)
JSL (0xC4507A)
JSL (0xC3E4CA)
RTL
}
UnknownJSRSubroutine6: { // Acts like 0xC10EB4, helps with the money window
REP (0x31)
PHD
PHA
TDC
ADC_i (0xFFF0)
TCD
PLA
STA_d (0x0E)
LDA_a (0x8958)
CMP_i (0xFFFF)
BEQ_a (Return)
LDA_a (0x8958)
ASL
TAX
LDA_x (0x88E4)
LDY_i (0x0052)
JSL (0xC08FF7)
TAX
LDA_d (0x0E)
SEP (0x20)
STA_x (0x8662)
Return:
PLD
RTL
}
Title_Stats_Window:{
REP (0x31)
PHD
TDC
ADC_i (0xFFEE)
TCD
LDA_i (0x002D) // Load 45
JSL (0xC1DD47) // Open window 45
ASMLoadAddress0E(Status_Text)
LDA_i (45)
LDX_i (0x0006)
JSL (0xC2032B)
PLD
RTL
}
Title_Resistance_Window:{
REP (0x31)
PHD
TDC
ADC_i (0xFFEE)
TCD
ASMLoadAddress0E(Resistances_Text)
LDA_i (52)
LDX_i (0xFFFF)
JSL (0xC2032B)
PLD
RTL
}
@MAGNAT2645

This comment has been minimized.

Copy link

MAGNAT2645 commented Nov 28, 2018

There's something strange

Speed, Guts and Luck was moved somehow. Also this weird Resistance window

@MAGNAT2645

This comment has been minimized.

Copy link

MAGNAT2645 commented Sep 21, 2019

So, there's no way to draw large amount of text like Status window does? (i mean, is there any way to avoid/bypass this window limit?)

Also i tried to expand Resistance window. So it looks fine
изображение

BUT sometimes this happens:
изображение

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.