Yes, of course it's possible.
You define a new item in include/constants/items.h
.
Add its basic data to the table at src/data/items_en.h
Add a text string for its description at src/data/item_descriptions_en.h
.
And that's essentially it.
For its effect you'll have to modify a number of other files depending on what type of effect you want to give it.
For example, on top of the aforementioned files you'd modify include/item_use.h
, src/item_use.c
and potentially a 3rd file if you wanted an item that can be used from the overworld, whereas if you wanted to code in an item with a battle effect, you'd edit include/constants/hold_effects.h
and a relevant battle file such as src/calculate_base_damage.c
, src/battle_main.c
or whatever else instead.