• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Other] Making items is hardcore damn!

McPaul

On my way to become a controversial and hated memb
  • 289
    Posts
    7
    Years
    Hello!

    When I was still ROM hacking the binary style I was able to replace the HMs by items except FLY, but currently with decomp it's soooo hard for me hahahahaha!

    I think I edited everything correctly, every occurence, the item pic, the palette, etc. but I still get ton of errors when compiling, why gosh?!

    [PokeCommunity.com] Making items is hardcore damn!
     
    Hello!

    When I was still ROM hacking the binary style I was able to replace the HMs by items except FLY, but currently with decomp it's soooo hard for me hahahahaha!

    I think I edited everything correctly, every occurence, the item pic, the palette, etc. but I still get ton of errors when compiling, why gosh?!

    View attachment 94608
    Did you define your item in include/constants/items.h?
    Did you define its sprite and palette in include/graphics.h?
    It's hard to tell if you did changes correctly without looking at them.

    Also, that fieldUseFunc could potentially be wrong...?
    None of the others have you specify a data type, at least.
     
    Here is the current situation.

    The field usage is currently problematic as I want this item to be able to have the CUT HM fuction but I'm still researching this at the moment.

    For the item icon I just copy/pasted the Venusaur Doll files from the Decorations folders to the item folders and changed the directories but that doesn't seems sufficient. Changing the palettes files looks difficult.
    [PokeCommunity.com] Making items is hardcore damn!
     
    Here is the current situation.

    The field usage is currently problematic as I want this item to be able to have the CUT HM fuction but I'm still researching this at the moment.

    For the item icon I just copy/pasted the Venusaur Doll files from the Decorations folders to the item folders and changed the directories but that doesn't seems sufficient. Changing the palettes files looks difficult.
    View attachment 94610
    Right, so, how did you go about it.

    The process you have to do, for reference, is:
    1) Copy venusaur_doll.png from graphics\decorations\venusaur_doll.png and rename it to saur_cut.png
    2) Drop it in the graphics\items\icons folder.
    3) Extract its palette in JASC-PAL format with an image editing software. GraphicsGale, Gimp, Photoshop, whatever.
    4) Put said palette (saur_cut.pal) in the graphics\items\icon_palettes folder.
    5) Make sure they're defined in the following files: include\graphics.h, src\data\graphics\items.h, src\data\item_icon_table.h

    If you forgot to do any of these, things are bound not to work.
     
    Damn it it's crazy the ROM just didn't want to let itself get compiled so I tried so do it by just renaming the files and occurences and... It still doesn't work! I did nothing but renaming files!

    That's just bullcrap! How is it possible? I didn't edit a single pixel! Looks like there are still downsides compared to binary editing...

    [PokeCommunity.com] Making items is hardcore damn!
     
    Damn it it's crazy the ROM just didn't want to let itself get compiled so I tried so do it by just renaming the files and occurences and... It still doesn't work! I did nothing but renaming files!

    That's just bullcrap! How is it possible? I didn't edit a single pixel! Looks like there are still downsides compared to binary editing...

    View attachment 94611
    The compiler is telling you that you didn't define your item in src/data/item_icon_table.h.
    The sprite in itself has nothing to do with it.
     
    The thing is that I pretty much did it, I think, unless I made a mistake?

    View attachment 94612

    And did you define gItemIcon_SaurCut and gItemIconPalette_SaurCut in include\graphics.h and src\data\graphics\items.h already too?
    Also, if you're adding this Saur Cut before the Poké Flute, you'll have to adjust the internal IDs of the items below it in include/constants/items.h.
     
    And did you define gItemIcon_SaurCut and gItemIconPalette_SaurCut in include\graphics.h and src\data\graphics\items.h already too?
    Also, if you're adding this Saur Cut before the Poké Flute, you'll have to adjust the internal IDs of the items below it in include/constants/items.h.

    It worked this time thank you! For some reason the palette define changed to SaurCut1 in include\graphics.h

    But for the explaination you gave me above there is something I still don't understand. You told me to extract the palette in JASC-PAL format and then put the saur_cut.pal file in the graphics\items\icon_palettes folder, but when I go to this folder, all the files are in .pal, .gbapal and .gbapal.lz format and in src\data\graphics\items.h it asks for one const u32 gItemIcon_SaurCut[] = INCBIN_U32("graphics/items/icons/saur_cut.4bpp.lz"); and for one
    const u32 gItemIconPalette_SaurCut[] = INCBIN_U32("graphics/items/icons/saur_cut.gbapal.lz");, how do I generate those .4bpp.lz and .gbapal.lz files?
     
    But for the explaination you gave me above there is something I still don't understand. You told me to extract the palette in JASC-PAL format and then put the saur_cut.pal file in the graphics\items\icon_palettes folder, but when I go to this folder, all the files are in .pal, .gbapal and .gbapal.lz format and in src\data\graphics\items.h it asks for one const u32 gItemIcon_SaurCut[] = INCBIN_U32("graphics/items/icons/saur_cut.4bpp.lz"); and for one
    const u32 gItemIconPalette_SaurCut[] = INCBIN_U32("graphics/items/icons/saur_cut.gbapal.lz");, how do I generate those .4bpp.lz and .gbapal.lz files?

    The makefile generates the 4bpp/8bpp/gbapal/lz files from the png/pal files when you compile
     
    It worked this time thank you! For some reason the palette define changed to SaurCut1 in include\graphics.h

    But for the explaination you gave me above there is something I still don't understand. You told me to extract the palette in JASC-PAL format and then put the saur_cut.pal file in the graphics\items\icon_palettes folder, but when I go to this folder, all the files are in .pal, .gbapal and .gbapal.lz format and in src\data\graphics\items.h it asks for one const u32 gItemIcon_SaurCut[] = INCBIN_U32("graphics/items/icons/saur_cut.4bpp.lz"); and for one
    const u32 gItemIconPalette_SaurCut[] = INCBIN_U32("graphics/items/icons/saur_cut.gbapal.lz");, how do I generate those .4bpp.lz and .gbapal.lz files?

    Palettes in JASC-PAL format are those you see in .pal files. Try opening any with a text editor.
    You can export your sprite's JASC-PAL palette with any image editing software, I believe. GraphicsGale is the one I personally use.
    As for the files ending in .4bpp, 4bpp.lz .gbapal and such, they're generated by the compiler when building a ROM.
    You don't have to do anything to them.
     
    Back
    Top