Dragon Quest IX color hacking?

Discussion in 'NDS - ROM Hacking and Translations' started by Sora de Eclaune, Aug 4, 2011.

Aug 4, 2011
  1. Sora de Eclaune
    OP

    Member Sora de Eclaune Baby squirrel, you's a sexy motherfucker.

    Joined:
    Feb 15, 2011
    Messages:
    2,785
    Location:
    123 Fake Street
    Country:
    United States
    Is it possible to hack some of the hair/eye colors to be different colors? My character's blonde hair is too yellow, and it needs to be more tan/white since the hair color I wanted was platinum blonde.
     
  2. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,750
    Country:
    United Kingdom
    Ignoring what is going on in mario kart and some other mario stuff most DS 3d hacks are file level ones (repointing and such) with the odd tweak to geometry but what you want is slightly harder than those.

    http://kiwi.ds.googlepages.com/nsbmd.html and it is down right now but should be cached http://llref.emutalk.net/docs/?file=xml/bmd0.xml (I should have copies on my machine as well)
    The NSBMD format (very cursory introduction to it, you might also want to read around http://www.romhacking.net/forum/index.php/topic,8407.html ) it can be buried inside packing formats and is usually compressed (standard LZ as found just about everywhere on the DS).
    The main thing to take away is that the items can be textured or just use material colours. Textures can figure into animation so you may have to edit multiple textures (there was a nice example with link in the first Zelda title where his blinking was done via texture swapping).
    This being said you might be able to get away with texture hacking in which case you have a few more tools- several programs gained a measure of NSBTX support.

    If you need to go custom format have the hardware docs, more so than sound and 2d any custom stuff rarely strays far from the hardware
    http://nocash.emubase.de/gbatek.htm#ds3dvideo

    If it is just a screenshot you might be able to edit some stuff but for general gameplay you are going to be taking on the formats.
     
  3. Sora de Eclaune
    OP

    Member Sora de Eclaune Baby squirrel, you's a sexy motherfucker.

    Joined:
    Feb 15, 2011
    Messages:
    2,785
    Location:
    123 Fake Street
    Country:
    United States
    That's a bit confusing... I thought since you can pick what hair/eye color you want, you could go in and edit one texture and be done with it.
     
  4. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,750
    Country:
    United Kingdom
    Sorry I forgot to state I know nothing of the game.

    In that case if you simply messed up during character creation I would look to save editing/cheat making to pull it off- figure out where the variables are located in the memory and either edit the save or edit the memory (think cheats).

    If the game did not provide the colours you wanted then it could get more tricky.
    Two ways I see for the game to do this

    1) List of textures available. Kind of memory consuming and pointless to my mind but it is a viable method and I have seen it in the past on other consoles.

    2) "Manually" editing the textures in memory (starting with a blank sheet so to speak) which is in many ways a nicer method but possibly more complex from the programmers perspective. 2d graphics do this sort of thing all the time. In this case you probably would not want to touch the texture and instead find the colour value.

    Looking at the game video the textures look fairly simple so there is not likely any great shading/gradient issue (think what happens when you try to fill a section that has slightly different colours on a basic image editor- similar issue).

    Now there is nothing stopping merging of the two and having what looks like a pregenerated lists in fact be a large increment slider and what looks like colour choice being a long list of pregen stuff. The pregen stuff could also be a colour list overlayed onto a blank sheet too but you get to figure that out.
     
  5. Sora de Eclaune
    OP

    Member Sora de Eclaune Baby squirrel, you's a sexy motherfucker.

    Joined:
    Feb 15, 2011
    Messages:
    2,785
    Location:
    123 Fake Street
    Country:
    United States
    The game provided colors to choose from, but none of the colors were what I wanted so I chose the closest color the game had.

    Also, I know nothing about hacking or cheats or anything of the sort, so I barely understand what you're talking about.
     
  6. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,750
    Country:
    United Kingdom
    2d graphics are various variations on paint by numbers but rather than sections it is usually pixel by pixel. Most graphics use palettes to figure out what colours to display- it is why games often have the same enemies but with different colours. You can also do animations of a sort by changing the colours in the palette in real time.

    You have sprites aka OAM objects (objs) and backgrounds (BG). I mention this as it becomes more important later and some of the concepts are related.

    3d animation is slightly different and there are several ways to do it but the DS does it roughly as follows.
    Unlike 2d where images are pretty much there from the start 3d imagery is usually a model which is animated in hardware (hopefully in real time)
    This model is made of a material which can have a colour.
    Materials are usually single colours so textures tend to get placed onto those models. These can be various patterns as appropriate.

    Most times games do not allow you to change 3d models but in theory the models take colour from other files/locations so there is little stopping them from user content but you have several methods by which to implement it.
    GBA/DS colours are 16 bits (well 15 bits- 32768 colours give or take a few for when blacks blend into each other) so you can scroll up these numbers to change colours and punting those into the appropriate memory location for the game to call a texture. However if the slider say jumped 1000 colours at a time/step on the slider you would have a limited selection and presumably not the colour you want but the game would likely store the value you picked from the slider somewhere and use it modify the texture- you get to find the location of this value in the save or memory (or location the save gets loaded into memory to/saves to*) and change it to one you want.

    However there is nothing stopping the developer from making say 20 premade styles, storing those and then just telling the game to pick a given texture number from the list of premade list. This is why you get to drill down into the texture/material formats and change colours.

    There is nothing stopping the game from acting as a kind of hybrid of the two methods and instead of having full alternative textures having just a bunch of premade colour values to use rather than say generating them with a slide at character creation.

    The models are then animated, in this case with bones which are kind of an average point in the middle of the shape (easier than using edges of the image) but this is not an animation hack for now.

    After this light effects are calculated depending on the type of light to change colours according to the light and generate shadows (or not- such things are complex so it can be simplified or skipped). Fog can also get thrown in. The hardware that does this on the DS leaves a bit to desired which when combined with a lack of memory for it all leads to the DS 3d being called weak.


    There are countless little tricks and tweaks associated with 3d imagery but I will avoid them for now as we do not seem to be playing artist here (not to mention I am no 3d graphics artist). All you need to know is this data gets quite big and is often very repetitive so compression is almost universal unlike other areas where is common enough but nobody would say universal (find just about any GBA or DS LZ compression tool and decompress with that).

    This 3d stuff once calculated then gets kicked to the 2d background memory for the game to work with- it essentially takes a screenshot every frame and displays that like a static image which is where my comments of screenshots appeared. It is also on of the reasons why savestates on flash carts are a bit troublesome.


    *saves have protection on them so if you can edit memory then go with that. Likewise the 3d stuff is separate to the normal operation of the DS so the values will probably be stored somewhere for use in the save and copying to the 3d sections as appropriate.
     
  7. Celice

    Member Celice GBAtemp Advanced Maniac

    Joined:
    Jan 1, 2008
    Messages:
    1,916
    Country:
    United States
    I never messed around with DQIX, but given how the game looks, you probably just need to locate the texture for the hair and edit it. The game doesn't have a sort of RGB scale for hair color--it has preset ones. It'd be a lot more simpler for the developers then to just store separate textures, rather than code an necessary feature to recolor an existing texture.
     
  8. Serephyx

    Member Serephyx I need a better title. ™

    Joined:
    Jul 9, 2011
    Messages:
    292
    Location:
    Hope's Peak Academy
    Country:
  9. Sora de Eclaune
    OP

    Member Sora de Eclaune Baby squirrel, you's a sexy motherfucker.

    Joined:
    Feb 15, 2011
    Messages:
    2,785
    Location:
    123 Fake Street
    Country:
    United States
  10. Serephyx

    Member Serephyx I need a better title. ™

    Joined:
    Jul 9, 2011
    Messages:
    292
    Location:
    Hope's Peak Academy
    Country:
    Huh?I tried it,it does Edit Hair color but only the color the game has..
     
  11. Sora de Eclaune
    OP

    Member Sora de Eclaune Baby squirrel, you's a sexy motherfucker.

    Joined:
    Feb 15, 2011
    Messages:
    2,785
    Location:
    123 Fake Street
    Country:
    United States
    Yeah. What I want to change the hair color to isn't available.
     

Share This Page