The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Members List
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

RichterSnipes RichterSnipes is offline

Simpleton

Visitor Messages

Showing Visitor Messages 21 to 30 of 49
  1. Jambo51
    November 29th, 2012 02:04 PM
    Jambo51
    OK, implemented those changes and I'm getting sensible sounding noises out. If I could just understand and parse the actual noise behaviour (ie, how it chooses what sound it makes), I'd be done.

    Oh well, in any case, I'm about to move on to assembly into the Gen 1 and 2 ROMs.
    Got any preferred formats for that? I was thinking something that looked a bit like XSE in terms of the music commands (since the music is technically a script, when you think about it).

    So an example music command would be:
    Note C 4 12 7 1
    Where the parameters stand for:
    C = Note to play
    4 = Octave
    12 = Length
    7 = Velocity
    1 = Fade

    The reason for so many parameters is that asking a user to understand the Frame Delay command is asking a bit much, IMO, so if I have it in each note command and parse it correctly, I can add it in on the fly when necessary.

    Also, incidentally, brilliant Profile Image! :D

  2. Jambo51
    November 25th, 2012 10:24 PM
    Jambo51
    I can tell you that E3 determines the noise pattern on Gen 2, although I'm unsure as to how it actually defines anything, as it points to a bunch of numbers which carry no obvious meaning. As for the rest, I'll see about implementing the changes at least, so that the notes exported make sense.

  3. Jambo51
    November 25th, 2012 01:32 AM
    Jambo51
    Well, that pretty much covers the full gauntlet of questions for Gen 1, as (distortion and noise notwithstanding) I seem to have very accurate reproductions of the music coming out now. There are some issues with the rising notes, but I'll look into them more accurately at a later date.

  4. Jambo51
    November 24th, 2012 08:34 AM
    Jambo51
    Fair enough, I worked off that assumption, and it seems to be working. Now another question, do you know where the headers for the songs in this region (22330-23F51) are? They're missing from any known list, and they would appear to include the battle themes (given that those are absent from what my tool can export currently).

    I have tried to find them, with no luck, so I'm a bit bemused.

  5. Jambo51
    November 24th, 2012 07:21 AM
    Jambo51
    Don't suppose you know the "max" value of it? I assume it can't be 0, for obvious reasons, so does it just operate from D1 - DF?

  6. Jambo51
    November 24th, 2012 07:01 AM
    Jambo51
    Frame delay defines how long each "tick" of the music actually takes. It's normally set to 0xC, but can be changed to lengthen/shorten a note's duration. With a note length of 0 and a frame delay of 0xC, the note lasts 12 (0xC) frames on a GBC, or W06 on GBA (due to the halving effect).

    In GSC, there's a command which directly modifies this frame delay to allow for longer/shorter notes, and I was wondering if there was an analogous command on RBY, since some notes don't play at the correct rate on export with my tool, and I assume that with the systems being so similar, there will be a command which modifies this value somewhere.

  7. Jambo51
    November 24th, 2012 02:59 AM
    Jambo51
    I don't suppose you know what the "Frame Delay" command is on Gen 1? It's command 0xD8 on GSC and has a format of D8 [Frame Delay] [Note Volume].

    The other question has to be what does command E8 in RB and presumably Y do? It doesn't appear to actually take any parameters, so it's somewhat confusing. It's just there...

  8. Jambo51
    November 23rd, 2012 03:57 PM
    Jambo51
    Ah, it turns out the off notes are caused by incorrect note alignment in the definitions.ini.

  9. Jambo51
    November 23rd, 2012 03:51 PM
    Jambo51
    VG = VoiceGroup

    It's already heavily reliant on an ini which comes with it to define what each command does, in terms of the Pokémon music engine.

    The thing is, even if the Pokemon engine is unusual, most other engines out there have to have the same end effect in terms of what commands do, so it should be entirely possible to modify the code to suit other games.

    In other related news, I rewrote the code to support the RB style (direct references) as well as the GSC song table approach. Using this, I was able to get a recognisable Pallet Town out of the ROM, though it's pitched too low (Probably something to do with the different note structure, given that the code's written around note C being in one specific place, which it no longer is). Other than that, it runs reasonably well!

  10. Jambo51
    November 23rd, 2012 01:38 PM
    Jambo51
    OK, a bit of a development on the Gen 1 music front. It turns out they (Red and Blue, at least) don't use music tables (as in a list of pointers to song headers), and in fact they have collections of song headers grouped together in at least 2, if not 3, sets of locations in the ROM. (Quite how these songs are referenced in game, I don't know, but I digress).

    I say 3 as some songs are missing from these headers AND there is a 3rd set of the triangle waves, the other sets of which follow directly on from the headers in question.

    Now, the problem is, detecting which style any given games uses will be awkward, and it will be even more awkward if the game uses a different style altogether.

    This is, quite frankly, a disheartening discovery (for obvious reasons). I can probably get around it by "creating" a song table in my tool's memory which it could use to navigate the songs, however. This could be complex, especially since I'll have to make it work for an unknown (at compile time) number of "table fragments". I would also need to take into consideration the lack of any obvious boundaries to the table fragments.

    However, shy of writing a brand new tool for them, I can't see what else I can do.

    Other than this, I have added code to my tool which generates a VG for the ROM you have open, and "rips" the relevant triangle waves along with it. In this way, I can ensure that (if the triangle wave location is known, then they can be ported to gen 3 easily).

About Me

  • About RichterSnipes
    Location
    USA
    Gender
    Male ♂
    Nature
    Modest
  • Signature


    Who says hacks have to radically changes things up from their base games?
    Red doesn't necessarily think so. He's literally spinning in circles thinking of a "definitive" version of his adventure in Kanto!
    Want to see what he has in mind? Click him for a throwback worth experiencing!

Statistics

Total Posts
Activity by Forum
Visitor Messages
Blog
General Information
  • Last Activity: 5 Days Ago 11:10 PM
  • Join Date: October 24th, 2011
  • Referrals: 0

Friends

Showing Friends 1 to 1 of 1

All times are UTC -8. The time now is 09:05 AM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.