NULL
FIX94's Blog
Writing about the random stuff I do
Color
Background color
Background image
Font Type
Font Size
    FIX94 So if you read my last blog entry, I briefly went over the fact that I recorded my gba sp using tin foil, paper and tape and did not go into much more detail than that cause I felt like it did not really fit into that blog entry topic. However, it is such an absurd thing that it may just be funny to look at what the hell I ended up doing to get that 3 minute test recording for my comparison.
    Disclaimer, do NOT attempt anything like this or you may end up breaking your devices or burning your house down. This really just was what I consider a funny idea that I was crazy enough to go with just for some short simple tests.

    If you are wondering, why dont I just plug a 3.5mm cable into a headphone out, in case you didnt know, the gba sp by default does not come with a headphone out, instead you get these ports:
    Warning: Spoilers inside!
    The one relevant for this is the one on the left next to my thumb, lets quickly check out its pinout (image from https://www.instructables.com/id/Charging-a-gameboy-advance-sp-with-no-charger/):
    Warning: Spoilers inside!
    So relevant for us is to first of all make it "detect" headphones which is easy enough, just shove a piece of tin foil into the upper left, just to bridge pin 1 with the outer shield.
    Then next up, pin 2 for the left channel, pin 4 for the right channel and pin 5 for audio ground will be needed. For all this I just ripped off some tin foil I had laying around, some paper from I think some battery pack or something and some tape, ending up with this beautiful selection of items:
    Warning: Spoilers inside!
    The paper just having the purpose here of making sure to not touch the outer shielding, we dont want that to happen. Well, with this sloppy mess slapped together in 2 minutes, time to shove it into that gba sp port:
    Warning: Spoilers inside!
    There we go, now we have the relevant audio channels put onto tin foil of all things :P Let me show this from a probably better angle so you can see how it lines up now:
    Warning: Spoilers inside!
    There we go, now, how exactly does this help me in recording from it? Well, lets have a quick look at a standard 3.5mm stereo audio jack so you can see where this is going:
    Warning: Spoilers inside!
    Would you look at that, it *almost* seems like I planned for this to line up with what we have going on, well now lets see how this jack fits into the ""adapter"" from the previous picture:
    Warning: Spoilers inside!
    And there you have it, it indeed touches the exact pins it needs to, now it was just a matter for me to hold that monster in my hand, push down on the 3.5mm jack connection with my hand and wiggle it around until everything got a solid connection and then not move a muscle for 3 minutes recording the stereo out of the gba sp, in fact I did that for more than once, I ended up making 3 separate recordings from the gba sp to confirm all my results were accurate and also then plugged this ""adapter"" into 2 separate nintendo ds systems which happen to have this same port as well as a regular headphone out so I then also could verify that both this port and the headphone output are identical and indeed, both put out the same audio as I also showed in my last blog entry, meaning it worked out exactly as I had hoped :D

    So in the end, I suppose this just shows that even without any proper adapter, proper copper wire, soldering equipment or anything like that its still possible to make something like this happen, sure it really is just something you can do for testing and should be very careful with, never try and use something like tin foil for anything with serious electrical current or you'll probably burn your house down because its pretty simple for tin foil to get hot and throw sparks and fun things like that.
    I hope you had a good laugh about this 2 minute idea of mine and did not take this serious in any way, I felt like this was just so absurd that it was worth sharing this free gba sp headphone ""adapter"" replacement.
    Fishaman P, I pwned U!, Flame and 9 others like this.
    FIX94 Disclaimer, this is a rather long and wordy comparison of details that most people probably dont care aboutat all, so read ahead at your own risk, I hope you dont get bored to death, so there, warned you ;)

    As I wrote in my last blog entry, I was wondering how different gameboy systems compare in terms of audio output, because I have heard in the past that the gameboy color output for example is not as good as the original gameboy output so I made my own tests with a gameboy, a gameboy color, a gameboy advance sp, a gameboy player and a nintendo ds (using the goomba gameboy "emulator" on the ds in gba mode).

    In all the following tests, I will go over how it just sounds, how much noise comes out of each output, how it looks in a spectrogram and also provide the actual .flac audio files so you can listen to them yourself. All spectrogram images contain the path from where I dropped the audio files in so you can easily grab those audio files from right here:
    https://mega.nz/#F!54xGSY7D!AHHPtY7q3ocuWZR-68KPBg!0t4hDBCD
    Everything was recorded from my pc line in at 96khz 16bit, the gameboy player at 30% input volume, everything else at 100% input volume, had to be more for the others because they only have headphone outputs after all.
    If you are interested in the music of the smurfs at all, most of it can be found in dmg-cpu-06/battery from the mega link above. That mega link also contains several other recordings including NES ones, maybe I will get back to the NES ones in a future blog entry.
    If you look at the spectrograms, take note of the bar on the right, essentially how high up it goes, the louder the sound for that given frequency is, going from red (loudest) to green to blue to black (quietest).
    I would recommend listening along to the audio files I write about only if you are really interested in this topic at all just so you have heard all these outputs for yourself, maybe I am not the only one that finds things like this interesting, who knows :P

    First, let me start with the best possible audio you can get in my opinion, the original gameboy. Below is a spectrogram of the smurfs title music:
    Warning: Spoilers inside!
    As you can see, there appears to be no hard frequency cutoff, making this the fullest sounding audio you can get. If you wonder how you can see a frequency cutoff you will see this a bit later down from other devices, a lot of the green (audible sound) on higher frequencies will start disappearing.
    Now of course I also wanted to know just how much background noise comes out of the original gameboy when there is silence, so I recorded a bit where it starts out with silence followed by one sound and then by silence again, the spectrogram for that is the following:
    Warning: Spoilers inside!
    When just powering a gameboy from batteries, there is pretty much no background beeping or anything going on, you can see that the "silent" areas arent exactly very dark colored (quiet) either so it essentially comes across as white noise which is not all that annoying or anything. I also repeated the same test when powering the gameboy using an external power supply instead, resulting in this spectrogram:
    Warning: Spoilers inside!
    At first glance this may look the same but look at the very bottom, do you see that giant green bar? it basically sounds like a low pitched constant hum plus the white noise from before, its not exactly terrible but not great anymore either, at least its better than most other options as you will come to see.

    So next up is the gameboy color, giving us the following spectrogram for the smurfs title music:
    Warning: Spoilers inside!
    Just like with the original gameboy, the gameboy color also appears to cut of no frequencies, making it sound just as full which is really good. Now to the part I mentioned at the beginning though, the gameboy background noise, here is spectrogram number one:
    Warning: Spoilers inside!
    Ouch! Now that is quite a bit worse, there are tons of green (audible) lines accross lots of frequency ranges, making the output not sound all that great compared to the original gameboy anymore. This was from batteries though which is fine, now get ready for the by far worst output of all the ones I tested, powering it using an external power supply:
    Warning: Spoilers inside!
    Now THATS what I would call a disaster, I dont think I have to explain exactly why this is so bad if you just look at the previous examples of the exact same sound, this is so much background noise at this point that you can hear it even when music is playing! So if you want to record anything from a gameboy color, I suggest you stay away from an external power supply and just stick with batteries.

    From now on, you will be able to see frequency cutoff pretty well, starting with the best option you have from the remaining list, the nintendo ds. Here is its spectrogram of the title music:
    Warning: Spoilers inside!
    Now I think you can see what is meant by frequency cutoff, in this case starting at 15khz you can see how things slowly get more quiet, honestly this is still sounding pretty alright and does not hurt anything too bad, but it is definitely noticable. Now for the background noise levels:
    Warning: Spoilers inside!
    The DS truly has no competition in this field, it is by far the quietest and cleanest you can get, making it the best option after the gameboy and gameboy color for sure.

    Next up is the gameboy advance sp, there is a bit more to this one, recording this one was pretty weird for me as the sp has no headphone jack by default and I dont own one of the adapters for it. So I online looked up the pinout for the port on the back and literally using paper, tape and tin foil I've made my own """adapter""" to wrap around a 3.5mm jack and jam into the sp port on the back, this turned out to work surprisingly well, in fact I also went back and tested this one 2 different DS systems to see if the output being transported by tin foil is any different from the actual headphone out and just look at this spectrogram of the noise test:
    Warning: Spoilers inside!
    It is what I would call identical to the headphone out! So even though this method is super weird I consider the following gameboy advance sp outputs as correct based on this ds verification. Also I made 3 separate recordings from the gameboy advance sp as well and it also always resulted in the same.

    All that out of the way, here is the actual title music spectrogram of the gameboy advance sp:
    Warning: Spoilers inside!
    What an early cutoff, seemingly around the 10khz range and then falling off slowly. This just further degrades the audio you hear compared to how we started originally. Also for the noise spectrogram:
    Warning: Spoilers inside!
    It really is not all that great, I cant really describe this any better than saying there is a lot of noise going on, hums, beeps and just everything in between, I guess the word "dirty" describes it best.

    Next up is the gameboy player. For this, I tested several different options.
    The first one is using the homebrew program gameboy interface, using the standard edition and the "sound=digital" option set when booting it. This is the title music spectrogram:
    Warning: Spoilers inside!
    Again just like from the gameboy advance sp we get a cutoff at about 10khz but it then starts dropping a bit quicker, which makes sense considering the gamecube audio output is limited to a sampling rate of 48khz (24khz in frequencies on the spectrogram), so everything above that is not even controllable for the gamecube anyways. The quicker frequency drop is pretty noticeable, making the output more muddy sounding, but it will get so, so much worse...
    Before that though, this is the noise spectrogram:
    Warning: Spoilers inside!
    You can see it is all very ordered, so there is not much random noise going on, just bit of a low hum really, overall not too bad at all.

    Next up is gameboy interface but without that "sound=digital" option set, just a standard option set and standard version, here is that title music spectrogram:
    Warning: Spoilers inside!
    The frequency cutoff is still 10khz, but it drops off even quicker now, so it sounds yet even worse again, not by a lot, but again noticable. No need for a noise spectrogram here, it would just be the same noise image with the sound in the middle having a lower top frequency.

    Lastly, at the very bottom stands the official gameboy player startup disc that came with the gameboy player originally, check out this title music spectrogram:
    Warning: Spoilers inside!
    YEP, this image is not a joke, thats what you get from the startup disc. It cuts off hard at 8khz and drops down really quick too, making this sound like something you downloaded via modem back in the day compared to the output of the original gameboy. Just scroll back up and look where we started and now look where we ended up, an output you really dont want to listen to. Again, no noise spectrogram for the same reason as above. So if you have a gameboy player I would very much recommend you use gameboy interface not just because of the better audio but better picture quality and many more options.

    Right, that is all the testing and comparing I did, what is best for you I dont know, you just have to listen to the original .flac audio files and see for yourself I suppose, so if you ever get into a scenario where you have to choose between different gameboy audio sources you are well prepared I hope. For me personally though if I ever want to record any gameboy audio I will most certainly try and get it from an original gameboy if possible because to me it has the best sounding output and a pretty low noise level. Also I was using gameboy interface with my gameboy player before but now I truly know just how much better it is when it comes to audio when put against the official disc, it is pretty incredible.

    That is all for this entry, if you made it this far then that is truly impressive, I do very much hope you at least learned something tiny from reading all of this, I just really wanted to have all my test results written down really, unsure if I should make that in any way public but I guess I now have, thank you for reading this.
    FIX94 It truly has been a long time since I used this particular feature, but anyways I felt like it may be time to write some of the things down I do just in case anybody is interested in them and for me to maybe revisit at a later point too.
    So, recently I did several tests with different gameboy models because I was interested in how exactly their audio differs from each other and for that I chose the smurfs because it uses several interesting registers to do stereo effects as well as volume control, I may get to those tests in a future blog entry, I dont know yet ;)

    To focus a bit more on the smurfs, I was looking for some form of sound test because I wanted to also record most other tracks too because I think they are pretty good, but after searching on the internet there did not seem to be anything, in fact, I only found a whopping 2 passwords you can use in the options menu on the title screen to warp to act 5 (PBSP) and act 10 (ZRMS) - and that was it.
    At that point I got curious if there truly was nothing else so I fired up the emulator bgb because of its very nice debugger features and started poking around, it just took me one look into the memory viewer to immediately see where the passwords were stored, its literally at the ROM start at hex D3 and D7:
    [​IMG]
    So it was just a task of setting a breakpoint for it on read and I saw where it compared that data, which was right here when pressing start on the title screen:
    [​IMG]
    As you can see, "de" gets loaded with D3 and D7 here, also "hl" gets loaded with D93A, that is the memory location of the password you enter in the options menu, 2941 is just comparing both strings, and if they were true it loads "c" with either hex 28 (stage 5) or hex 58 (stage 10), if it did not match then it gets set to hex 0 (stage 1), "c" then gets moved to "a" and "b" gets loaded with hex FF, so far its all pretty simple and does not seem all that interesting...

    However, the code right above this looks like this:
    [​IMG]
    You might notice that right in the first line, it loads from D93A, which is our entered password, and then comparing it to some hardcoded hex value, it does so for the first 3 letters and then that last comparison is actually the index of the 4th letter instead of its displayed value, so to be a bit more specific, it compares the first 3 letters against hex 42 (B), hex 58 (X) and hex 4D (M) and makes sure the 4th letter is below index hex 13. If all of that is verified true, then it takes the index of the 4th letter and essentially multiplies it by 8 (stage numbers are multiplied by 8 for some reason), loading hex FE into "b" and jumping to the same location where the "regular" passwords also continue at, meaning this acts as a form of secret developer level select! Also I should note, the "b" value is different from this password so when you load a bonus stage, it returns to the main menu after the bonus is finished since it has no act it was loaded from.

    So with all that explained, here is a list of valid level select passwords you can enter in the options menu:
    BXMB - Act 1
    BXMC - Act 2
    BXMD - Act 3
    BXMF - Act 4
    BXMG - Act 4 Boss
    BXMH - Act 5
    BXMJ - Act 6
    BXMK - Act 7
    BXML - Act 8
    BXMM - Act 9
    BXMN - Act 9 Boss
    BXMP - Act 10
    BXMQ - Act 11
    BXMR - Act 12
    BXMS - Final Boss
    BXMT - Final Boss Defeated + Ending
    BXMV - Bonus Stage The Dam
    BXMW - Bonus Stage The Mushrooms
    BXMX - Bonus Stage The Bubbles
    I dont think those were documented before so hey, I actually may have found something new :D


    Oh, also because I already looked at the memory locations where the password was set I noticed some more interesting locations too, such as these:
    D942 - sound effect to play next
    D95A - music to play next (16 bit address)
    D9AA - invincibility frames after hit (counting down on hit)
    D9B5 - lives
    D9B6 - health
    D9CD - timer (uses 2 bytes for 0-9 each)

    With those I made up a set of game genie codes just for the sake of having done gameboy cheats, never wrote my own ones before.
    edit: My original set of codes were only for v1.0, that version boots up saying 1993 like this:
    Warning: Spoilers inside!
    If you have that version then this original set of codes will work:
    185-14E-4CA - disable sound effects
    wish that one was an option ingame, its weird how you can disable music but not sound effects...

    005-EBC-19E - infinite lives
    006-D7A-19E - infinite health
    C97-C3A-D5D - infinite time
    186-B1A-6EA - phase through enemies
    pretty generic ones I know, but hey, every game has cheats like these in some form right? ;)

    replace title music with:
    1BA-85D-80A - act 1/act 11 music
    21A-85D-80A - act 2 music
    1EA-85D-80A - act 3 music
    36A-85D-80A - act 4/act 12 music
    24A-85D-80A - act 5 music
    27A-85D-80A - act 6 music
    2AA-85D-80A - act 7 music
    2DA-85D-80A - act 8 music
    30A-85D-80A - act 9 music
    33A-85D-80A - act 10 music
    39A-85D-80A - bonus music
    42A-85D-80A - intro part 1/game over music
    45A-85D-80A - intro part 2/boss defeated music
    48A-85D-80A - boss music
    4BA-85D-80A - final boss music
    4EA-85D-80A - credits music
    just for show, I understand how the music works in this game, and sadly I did not see any code resembling a sound test, so these just demonstrate how to for example swap music around.

    if your game however is v1.1 indicated by it saying 1994 on boot like this:
    Warning: Spoilers inside!
    then here are the adjusted codes for that:
    185-4AE-4CA - disable sound effects
    wish that one was an option ingame, its weird how you can disable music but not sound effects...

    006-C1C-19E - infinite lives
    007-E9A-19E - infinite health
    C98-D5A-D5D - infinite time
    187-C3A-6EA - phase through enemies
    pretty generic ones I know, but hey, every game has cheats like these in some form right? ;)

    replace title music with:
    1BA-49D-80A - act 1/act 11 music
    21A-49D-80A - act 2 music
    1EA-49D-80A - act 3 music
    36A-49D-80A - act 4/act 12 music
    24A-49D-80A - act 5 music
    27A-49D-80A - act 6 music
    2AA-49D-80A - act 7 music
    2DA-49D-80A - act 8 music
    30A-49D-80A - act 9 music
    33A-49D-80A - act 10 music
    39A-49D-80A - bonus music
    42A-49D-80A - intro part 1/game over music
    45A-49D-80A - intro part 2/boss defeated music
    48A-49D-80A - boss music
    4BA-49D-80A - final boss music
    4EA-49D-80A - credits music
    just for show, I understand how the music works in this game, and sadly I did not see any code resembling a sound test, so these just demonstrate how to for example swap music around.

    If you actually read through all of this then thank you, maybe something like this was interesting to read, let me know :)
    Bimmel, antiNT, Milenko and 12 others like this.
    FIX94 [​IMG]

    Here is my small review of the R4i Save Dongle!

    Installation
    The Installation was bloody easy, just put the dongle into a usb port, that's it! My windows 7 64-bit installed it automatically.

    [​IMG]


    Usage
    I just needed to download the R4i SaveDongle V1.1 Software, after starting it the dongle was detected instantly:
    [​IMG]

    The save backup also works just fine, tested it with Ocarina of Time 3D, a 3DS game:
    [​IMG]

    I also restored a different save from another user on games-engine.com, worked fine too. All in all I can say it works perfectly fine for the games I tested and it's really easy to use, it's just working fine with 3DS games, in my opinion currently the best way to modify 3DS and NDS saves, everyone who wants to modify, backup or share a save, this device is just working great, I can recommend it :)
NULL