• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.
RichterSnipes
Reaction score
143

Profile posts Latest activity Postings About

  • Yeah, I would appreciate knowing how you used those commands to do the pitch bending, since it looks very much like I am going to need them for some of the songs in GSC and RBY.

    Other than that, and the ever annoying Noise tracks, the songs are sounding very, very accurate now.
    Well, 96 / 0 would be undefined, so I made it act like z = 1 under that circumstance IF ANF ONLY IF there is still modulation to be run. (Hence my reference to XX and Y not being 0 as well).

    I haven't yet investigated this distortion command beyond looking at the basic structure. It doesn't help that I'm unsure of the effect that the command will have, which can't be said of any other command I have investigated so far (except from the "Tone" command, I still don't know what that does).

    Based purely on what I can hear from the evolution jingle, it appears that distortion is somewhat analogous to pitch bending on Gen 3, but don't quote me on that.
    An addition to that, what I have discovered is that if z = 0 (with respect to that modulation document you sent me earlier), AND xx != 0 AND y != 0, then LFOS = 96, otherwise, LFOS = 0.

    It turns out that this was why the modulation in the rocket hideout was incorrect, as the LFOS wasn't correctly set because I hadn't implemented this rule.

    Now, this weird distortion you reference, I already know of one song in GSC which would appear to use it (the Evolution jingle) and the command for this distortion (in GSC at least) is E0.

    E0 XX YY (NL) - Unsure if NL is part of the command. (Where N = Note, L = Length as defined elsewhere)

    distortion x, y(,nl) (in that format you previously mentioned)

    However, I currently have no understanding of how this works, beyond the fact that it takes 2 (obvious) parameters, though something I remember seeing once indicated that it actually took 3 parameters, which may mean that the distortion command also includes the note which has to be distorted as well.
    This is just note velocity (v???). I treated the overall volume (VOL) as a constant 119, since there was nothing else to define it in the triangle tracks. I'm talking specifically about music exported by my tool. If it's using the max volume, it sounds fine, but both of the other 2 sound far too quiet.

    The modulation is fairly constant, yes, in the Rocket Hideout. I have discovered it's due to a misinterpreted LFOS. The LFOS isn't set, for whatever reason, I set it manually and it was far more accurate.

    I have also found that the modulation depth needs to be approximately halved for it to sound even vaguely correct, based on some experimentation. I will put this down to the GBA's system of having 96 ticks in a measure, instead of the "normal" 192.

    This isn't entirely surprising to me, since I already know that you need to similarly half any DS music's Modulations when importing into a Gen 3 ROM. I will assume it's a quirk of the Sappy Engine.
    Well, with the modulation, I applied what you said, and for most songs, it comes out very accurate, but with the Rocket Hideout (very high modulation rate and depth), it just sounds all wrong.

    As to the triangle volume, I'm still using the 127, 127/2, 127/4 model (albeit with different numbers, since I keep raising the volume to try to find an accurate point).

    I think I currently have it as 1 = 127 * 0.8, 2 = 127 / 1.1, 3 = 127 / 1.2, and yet, it STILL sounds FAR too quiet in most songs. I can't understand the lack of accuracy with it, tbh, it's bizarre.

    Do remember, it was a whole new music engine. That necessitates the loss (or changing) of some of the previous features. The reason that the emulation of actual GB carts works so well is that it actually uses the original music engine which is built into the carts themselves. Don't misunderstand, the GBA is physically capable of emulating the music perfectly, it's the sound engine which isn't.

    A music table is (in Gen 2, at least) a simple list of pointers to the music headers. In Gen 3, it has extra data which tells the sappy engine what type of song it is. Used to put sounds/fanfares into a different memory location, I believe, so they don't interfere with the "main" songs.

    If there is no table in the Gen 1 ROMs, we'll have no choice but to put all the pointers in the ini, sadly. I can't find one, but I'm assuming it follows the same format as Gen 2's. Problem is, I tried "pointerifying" one of the header offsets, and found no reference to it anywhere in the ROM, so I'm bemused.

    Thing is, GBC pointers look nothing like a GBA pointer, and they can be confusing to get to grips with.

    I'll give you an example: Say we want the pointer to 0xE906E (which happens to be the music table location in GSC (USA))

    First, you divide it by 0x4000 and take the INTEGER DIVISION (so ignore anything after the point) result. This number is known as the ROM Bank.

    In this case, it's 0x3A.

    Now, subtract (0x4000 * 0x3A) from 0xE906E -> you get 0x106E.
    Now ADD 0x4000 to that number and then reverse it: 0x106E + 0x4000 = 0x506E
    Reverse: 6E 50
    Finally, append the ROM Bank to the front of it and voila, one GBC ROM Pointer: 3A 6E 50

    Confusing, huh? It makes sense in terms of the GBC hardware though. They had to make use of extremely limited memory, and as such, loaded chunks of 0x4000 bytes of the ROM into memory as and when it was needed. The memory location this started at was 0x4000, explaining why there's an additional 0x4000 added to the pointer.

    It actually references memory location 0x506E in memory when ROM bank 3A is loaded. Make sense?
    Just like any translation (which is essentially what my tool does), some things are lost in the translation. At the moment, it's things like modulation and triangle wave volume that get misinterpreted, from what I can see.

    The modulation is definitely off, that I am sure of now, but what I can't decide on is if it's off because of poor translation, which would be entirely my fault, or if I need to compensate the values for GBA playback. As I mentioned before, I already know that modulation on GBA is a bit odd at times, so that is very much a possibility.

    As to the gen 1 ROMs, I have still been completely unable to find any obvious music table. I could manually define each song in the ini (by including the song's header location along with the name) but that would be less than ideal. In the absence of a music table however, it may be worth trying.
    There is still a certain limit, but that limit is caused only by the voice command itself only taking a byte as a parameter. There is no reason outwith that to limit the size of a VG. As it stands, the limit is 256 (0 - 0xFF inclusive), but a slight rewrite, or addition of a secondary "Voice" command could get around that easily enough.

    As to the velocities, the behaviour does emulate what Gen 2 does at least, but a scaling factor may possibly be needed for GBA playback, I'm not 100% sure. I've not done enough work with the fade ins to truly know just how off they are, and indeed, I'm still not sure whether 15 is equivalent to 1, or if 9 is equivalent to 1.

    I can tell you there are exactly 10 triangle waves in GSC. I have found what appear to be several definitions for noise tracks, but I don't understand how they work. (If they're used in the way I am currently guessing, there's a minimum of about 20 different noise voices).

    In theory, if you didn't want to put them all in one massive VG, you could split it up easily enough. You would replicate the first 120 (or less if you take out the similar voice - FWIW, I left it in even though I can't hear any difference), then tag on your triangle waves and noise definitions. If the engine was hacked, you could auto-define the first 120, and only insert the waves and noises, which would save some space.

    IMO, for the accuracy it gets you, it's totally worth it!

    Wow, I feel special, I just found something out about the GBA's sound playback that no-one else has ever noticed. All because I messed up with my original VG and noticed that the notes faded in!

    Hooray for accidental discoveries caused by screw ups! :P
    Excellent. Based on this information, I was able to implement some decent sounding modulation. I can't decide if it's 100% right, since I know GBA's modulation plays differently from the DS modulation (just as an example), but I'm not sure which of them is "right", as it were.

    It sounds reasonably accurate, but at the same time, doesn't sound quite right. Just like the volume of the wave tracks, I can't decide if it's playback (on GBA) which is the problem and I need to compensate the volume levels, or if I have misunderstood the formatting (I don't believe so, since I'm using the model you told me about last time).

    I have also discovered, seemingly at least, that the "Decay" on a Square track (on GBA) is treated as an Octal value, with the remaining bit (in the Nibble) set aside for whether it's decay or "inverse decay".

    What that means is that 1-7 decay the note's volume and 8-14 (may be 9-15, as Octal 8 technically equates to no decay if this system is correct) raise the volume. I'm not entirely sure whether 8 ~ 1 or 14 ~ 1 in terms of decay speed, however. I'm also not sure of what controls the final volume of the note, so this is not perfect information, I would admit.

    Still, I'm sure some prolonged messing around with it may well work to our advantage. The major downside is the obvious extra voices that adding this into the VG means. With 2 sets of 4 sets of 15 (just for the square tracks), that's 120 voices, before we even begin to consider the waves or noise

    Just as well that VGs aren't limited to 128 entries then, eh? ;P
    I like the fact that you have nit-picky input, helps me flesh things out better. I know Game Freak changed Jynx to purple officially. But, when I said de-censor everything I can, that's what I plan on doing. I still probably have some text to look out for. Such as, apparently in Celadon City the old man is creeping on the girls, but, I'm not sure how the Japanese version is worded and I was never motivated enough to play Fire Red in Japanese to go transcribe the text, haha.

    Yeah, I understand that Jynx could come off as Blackface, but, I don't think a kid's video game company like Game Freak would intentionally go out of their way to be racist. Whenever I have enough material to update and more people reply in the thread, I'll address this issue head on. If it still becomes an issue, I'll recolor to a lighter more Grey-shade or very Dark Purple/Blue. I wanna keep it closer to Game Freak's original intent. But, I'm willing to compromise if it comes to it.
    Hey, is there any chance you could link me to your documentation on the Gen 2 Modulation format?

    I'm beginning to reach the stage where having good reliable working modulation code is necessary, so I would appreciate it very much if you were to help me out!

    I've had to make some assumptions about its format (assumptions based on your music from the patch you made previously, tbf), and I want to know if those assumptions were right, and if not, how I can correct them! :D

    Also, if you have ANY documentation about Noise whatsoever, it would be great. I've managed to work out that each "noise voice" points the music loader to a certain set of data in the GSC ROM, but I have no idea what the data does. It's possible it's set out as ADR (Attack, Decay, Release), since when I tried the numbers out in a Gen 3 ROM, it produced vaguely accurate results.
    I did a different pose first for a mock up image, that was a compromise for now. I will edit it once I get more things done. The Leaf back was already shrunk a bit, as was Red's, I originally made them using the DS dimensions. The Blue sprite was a edited one. Can't really say heavily, 'cause it's still the original with minor edits and a pallete change here and there.

    I've kinda been random on the order of Pokémon revamps. So far it's been, 1-9, 51, 124 (De-censored it, Jynx is Black again), and inserted the Black/White sprites of Sceptile/Blaziken/Swampert and the DP sprites of Poochyena and Mightyena.

    The Jynx example:
    Yeah, haha. The new games still use the 16 color palletes, so with that, that is true actually. I also attempted to correct the female hero's shading and I replaced the backsprites with 4th Gen versions of both.


    [IMG]

    I also made a subtle change to the Poké Ball graphics when battling trainers or a Pokémon you've already caught. Made it to look more like the 4th Gen version. For the most part, I'm updating a majority of graphics to look like 4th/5th Gen game.
    Yeah, I got'cha. I've been using the fourth gen sprites as reference when re-coloring the 3rd gen ones. Some sprites will just be the 4th/5th Gen ones. Such as Charizard has its HG/SS sprite for the front and a re-colored one for the back. Sceptile will use its 5th Gen, a lot of Hoenn will since it has a better pallete than 3rd gen.

    Charizard Example - with screens:

    [IMG]

    I went and made the waist a tad bigger, so it looks more natural. I will focus on correcting some of the shading after I work on more of the Pokémon.

    I fixed Bulbasaur and made it's face look more like 5th Gen and took the bottom from the 5th Gen sprite:
    [IMG]
    Yeah, other than final forms, I'm taking the revamp approach, here's what I've got so far:


    Completely ignored the base for Leaf I had before and this is the new result:

    [IMG]

    Since I couldn't get Red to look right without complete editing, I just used his HG/SS sprite and gave him a cocky smirk and erased the darkest skin shade so it makes him look a little younger.
    At this point I'll have someone re-do the Red and Green/Leaf sprites. I've made sure to shrink it so it looks decent on the GBA. I noticed that a lot of people ignore shirking things for the DS. Hm, for Pokémon, I could always de-color everything and revamp them to look like 4th Gen/5th gen. That way they're the same size as they're supposed to be. Or I could just wait for Chaos Rush's project to finish.

    Overall I'm good with art, but, sprites are tougher due to how small everything it has to be, haha.
    If you don't mind me asking, how did you make the permanent cut work? I assume it was through hex, but I am rather interested in using it in a hack, as well.
    EDIT: Actually, I just looked at the documentation. I take it the part regarding "trees" explains it, right?

    Also, regarding Visitor messages, if you want to send them to someone else then you simply go to their profile in post it, rather than your own. Alternatively, you can press "view conversation" on that person's previous message and post it there.
    To SSJ4 Furanki: (Sorry, I don't know how to properly use visitor messages:P)

    DISCLAIMER: I'm not trying to be mean with the following comments, they're just constructive criticism. Art isn't for everyone, and what you've shown in the other departments is proof enough of your skills. :)

    Well, I guess that's the idea I had with Red. But now his right arm looks a bit stiff. And his face...it's a bit...derpy. Just the way his eyes are in comparison to his mouth. The Green/Leaf sprite is another improvement, but it still doesn't look like it's at the same quality as the HG/SS sprites. I think at this point it might be better to find a spriter. But, before you consider that, read the rest please!

    I just mentioned the Sabrina sprite because of how different it was to the original art compared to the other sprites. Technically you could find little nagging problems with all of the sprites. Like with Blue, there seems something different about him in his HG/SS sprite, but I can't put my finger on it. What I'm trying to say with that is that it isn't necessary to change Sabrina's sprite just for that. Her HG/SS sprite is still recognizably her, perhaps just a bit modernized.

    If anything, I think the issue you'll run into with the HG/SS trainer sprites is that all the sprites that you don't change are going to be a lot smaller in comparison. Also, all the Pokémon sprites will be off in size by comparison, especially when you compare sizes in the Pokédex. Obviously you can't import all the DS sprites because several of them won't fit within the GBA's 64 x 64 pixel limit, and using shrunk versions of them defeats the entire purpose of using larger trainer sprites.

    So, I guess the big question is...Is it really worth it to change the trainer sprites from their FR/LG versions if it's going to lead to that many issues? I'll let you answer that yourself!

    I hope all is going alright, by the way.
    These are the most current versions, taking your suggestion of the happy look while still being HG/SS/BW/BW2 style.


    [IMG]

    And originally I was gonna use Sabrina un-edited, but, this is what I edited it into. It keeps the FR design for the most part, but, I kept the green color and wristbands from the HG/SS one:
    [IMG]
  • Loading…
  • Loading…
  • Loading…
Back
Top