• 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?".
  • Staff applications for our PokéCommunity Daily and Social Media team are now open! Interested in joining staff? Then click here for more info!
  • 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.

FireRed hack: Pokémon Throwback v211001: Kanto, Your Way

RichterSnipes

Not even a nibble...
  • 513
    Posts
    13
    Years

    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    There are tons of hacks out there that completely change up the Pokémon experience to make something new. But what if you just wanted something that attempts to improve upon the classic game that is already there? Pokémon Throwback is my attempt at doing just that. This hack incorporates new features and fixes into the 1st Gen remakes to try and create the most refined version of the original Kanto story available while remaining true to the GBA games at its core.

    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    Throwback contains a variety of patches that you can use at your own leisure: pick one or more things, or put the whole thing into the game.

    Throwback in its current form fully supports Pokémon FireRed Version (BPRE v1.0). I provide legacy support for Pokémon LeafGreen Version (BPGE v1.0). The main portion of the OP will cover FireRed support.
    GB Sounds
    Offering both new and old versions of audio tracks for a game is never a bad thing, as both have their own charm. This patch brings in the music from Pokémon Red/Green/Blue/Yellow. They're based right off of the code from the original ROMs, giving highly accurate results. They play off of the native PSG sound chip in the Game Boy Advance instead of DirectSound (save for one exception) to ensure minimal loss of sound quality.

    To play the classic music, check your Key Items Pocket at the start of the game for a new item: the GB Sounds! The game saves which bank is in use, so saving with the 8-bit music on will allow you to keep them on when booting the game up (and vice versa). You'll also be able to play the music in stereo if you wish, with Gen I tracks now having some custom stereo panning. Mono is still suggested for GB Sounds, though.

    Things to consider if you think something's off with any part of the sound:
    Spoiler:


    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    Catch 'em All
    You'll be able to obtain all Pokémon from the first two generations in this hack. They're all soundly located and dispersed throughout the game to keep in line with official releases. I've also tweaked some events for one-off Pokémon such as starters and legendaries. They're subtle and low-key enough to not feel too distracting or unfitting from the official game. Trade-evolved Pokémon still evolve through trade to keep with series canon, but you can also simulate trade using Bill's Teleporter at the Sea Cottage. No Hoenn Pokémon are in the game, but I do have plans for Hoenn in the future.

    Two other things to note. First off, the title screen is now version-agnostic. And second, the post-game has been tweaked. The Sevii Islands are no longer accessible until after you beat the Elite Four, you'll receive the National Pokédex after you beat the game regardless of how many Pokémon you've caught, and you can obtain non-Kanto Pokémon whenever you want. This is all meant to streamline game progression and give the opportunity to use non-Kanto Pokémon in the main story.

    Want to know where Pokémon have been moved in the wild? Check the Wild Locations text file in the "Documents" folder for more information!

    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    Wardrobe
    One of the presentation changes of FireRed and LeafGreen was new clothing styles for the main characters (the player and the rival). With this hack, I try to replicate the looks of their original looks with reasonable results. All relevant sprites, including the overworld sprites, battle sprites, and opening and credits sprites, have been changed to do so.
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    Want the female player character to not have a hat on? There's a patch for that! Use the Wardrobe mod patch by Karmageddon to let her hair run free, like her equivalent character in Pokémon Adventures.
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    Extras
    Do you want to enjoy some of the features and quality-of-life improvements from later generations? What about items that aren't in the vanilla game? This patch attempts to satisfy that craving of yours. With a varying array of fixes available, there's certainly something here to please you.

    • The game now saves quicker.
    • All unneccesary tutorial elements have been removed.
    • TMs are infinitely reusable, and all Move Tutors will teach your Pokémon their moves an unlimited number of times.
    • You now start the game with the Running Shoes and can run indoors.
    • Cut down a tree once and it will be gone for the rest of the game.
    • You can use Repels consecutivley as they run out.
    • Poison no longer affects your Pokémon in the overworld.
    • Stats affected by a Pokémon's specific nature are now color-coded in their Pokémon Info screen.
    • The Egg-hatching field effects of the abilities Magma Armor and Flame Body have been implemented.
    • Collecting items from the ground or from certain people now plays the proper fanfare instead of the Level Up tune.
    • All Berries, excluding the Lansat and Starf Berries, are obtainable ingame (those two can be obtained through special means in the Catch 'em All portion of the hack). Check Cerulean City, Berry Forest, and Resort Gorgeous for changes.
    • Berry numbers 21 through 26 now have their EV-reducing and friendship properties implemented. EVs are capped at 252 per stat.
    • The Pokédex species glitch, roaming Roar glitch, roaming legendary IV glitch, Pomeg glitch, and Nugget Bridge bug are all fixed, as are various graphical anomalies.
    • The deeper areas in Mt. Moon have been touched up.
    • Wild Pokémon have had their held items tables updated to incorporate possible items from later games.
    • Many items are now obtainable, including the Scope Lens, BrightPowder, Choice Band, Shell Bell, Mental Herb, White Herb, Light Ball, all mising flutes, all Poké Balls, and all non-Hoenn Mail types. You also now get a Lucky Egg at some point in the post-game. Check the file "Newly-Added Items.txt" for locations.
    • You now turn to face trainers when they engage you in battle, even at Trainer Tower.
    • Your rival now has unique taunts for you when losing to him at any point in the game. These taunts are taken from the unused text in Gen I.
    • Translation errors and post-Gen I localization changes have been fixed or reverted, including blacking out, Gamblers, Ace Trainers, the Celadon Condominiums, and Space Shuttle Columbia.
    • Green and Charine have been properly renamed to Blue and Janine, respectively.
    • The Viridian Gym Leader, Elite Four, and Champion have had their parties restored to the slightly tougher levels and evolutions of Gen I.
    • The Pokémon League lobby music is now the Pokémon League theme, and the Trade Center and Colosseum now play the Celadon City theme.
    • The Game Freak opening now displays the word "Presents" as it should.
    • The Jigglypuff in Pewter City's Pokémon Center spins just like it did in the Gen I games.
    • The game's default text speed on starting a new game is now "Fast". The game engine has also been optimized.
    • Eggs are no longer shown as healing at Pokémon Centers.
    • All Rocket grunts will disappear from the game at the right time now.
    • Moves that never miss will now correctly display their accuracy as "-".
    • The extra delay in restarting map music after finding a hidden item with the Itemfinder has been removed.
    You can also obtain random items when using Rock Smash on breakable rocks! Note that this is currently part of the "Catch 'em All" part of the hack instead of the "Extras" portion of it.

    For practicality's sake, these are all part of one patch. I have individual patches for each part, but I don't include them in the main download due to it being excessive. If you need a more fine-tuned version of Throwback, download the source and use the individual feature patches included in it. But be warned, it's based on a long out-of-date version of the hack.

    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way
    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    And More!
    • Decapitalization: This does exactly what you'd expect. All text is properly decapitalized the text in the game. Menu items and moments of actual shouting are left capitalized. Separate decapitalization patches are also included for new/changed text from the other parts of the hack.
    • Higher Quality Cries: This patch inserts higher-quality WAV files for the cries of Kanto and Johto Pokémon. They're uncompressed and sampled at 13379Hz, the default sampling rate for the GBA Pokémon games (and the vast majority of GBA games, for that matter). Fair warning, though: This takes up a lot of free space in the ROM.
    • Custom Learnset Changes: This patch alters Pokémon learnsets so they can learn all applicable level-up and Egg moves that are available to them from Generations III, IV, and V. Due to this altering the balance and main gameplay of FireRed, THIS IS NOT A PART OF THE MAIN THROWBACK PATCH. Intended for people looking to spice things up and want a change of pace with the game. Combine it with the Physical/Special/Status split for an experience more akin to later games!

    [PokeCommunity.com] Pokémon Throwback v211001: Kanto, Your Way

    Special thanks to Karmageddon for the hatless sprites! Wonderful artwork, and I'm gracious for you sharing it with me and the community.

    Custom/overhauled ASM routines:

    Jambo51: original GB Sounds function, Trainer facing fix, time-based evolutions
    FBI: TM reusage (modified by Pokemon_XY), held item checking
    ZodiacDaGreat and Shiny Quagsire: real-time clock
    jiangzhengwenjzw: forced evolution
    diegoisawesome: new GB Sounds function, "Presents" text on Game Freak screen fix
    Spherical Ice: color-coded stats affected by nature, EV-reducing/friendship-raising Berries, bonus Premier Ball from vendors, TMs/HMs don't replenish PP
    HackMew: field effect for Magma Armor/Flame Body
    DizzyEggg: GBA Pokémon game optimization (ported by NewDenverCity)
    Darthatron: modern Repel system
    tkim: seamless audio continuation across battle-to-overworld transition, assembly tweaks

    Tools used:

    Spoiler:

    Download (for BPRE v1.0)

    Current Version: 211001 (2021 Oct. 01)

    Changelogs: v211001 | 210801| 210717 | 210311 | 200612 | 200611 | 200530 | 200110 | 191003 | 190818 | 190815 | 190806 | 190803 | 190801 | 190718 | 190704 | 190620
    170709 | 170328 | 161216 | 161215 | 161129 | 161121 | 161113 | 161105 | 161104

    Legacy changelogs:
    Spoiler:


    You can also check out tkim's version of the hack! His personal version of the hack, labeled "Unofficial Pokemon Throwback v180715", takes his own spin on the Throwback idea. You can read up on differences in it in the readme posted below. Try it out if it suits your fancy!



    Extra downloads:


    Source files (v170709)
    Catch 'em All documentation. Hasn't been worked on in a long time. Maybe I'll finish it one day!
    LeafGreen (BPGE v1.0) Throwback v3.9.1b Download
    GB Player for FR Italian Players (BPRI) v3.9.1b; special thanks to MF50 for translation and adaptation work! Interact with the NES to get the GB Player.

    The .zip file should contain the complete hack, folders with the separate patches, decapitalization patches, the save compatibility patch, and various documentation for the hack. The main patch includes all Throwback patches combined into one except for the learnset changes. All text in the game is fully decapitalized—original or hack-added. Also included is a file with the name "rtc.asm." Don't worry about it, that's strictly for legal reasons.

    The save compatibility patch is for people importing vanilla FireRed/LeafGreen saves and using older Throwback saves. New save games won't need to use it. If you apply the save compatibility patch, speak to the attendant on the left of the second floor of any Pokémon Center in the game to get your fixes. It'll make the fixes that apply to your specific configuration of Throwback.

    Check out the ReadMe file included with the download for information on customizing your Throwback experience. It includes several examples for patching things in the right order.

    Throwback runs fine on actual hardware. The only issue you may have is with the real-time clock. If you flash the hack to a cartridge that doesn't have an internal battery, the game won't be able to properly make use of RTC functionality. This will make obtaining Umbreon impossible. Players using emulators or flashcarts with built-in RTC support will be fine.

    Check out the guides for wild Pokémon location changes, held item changes, and in-game event Pokémon. They're there to tell you what's changed and what to expect in the hack. The music documentation is there for people who want to delve deeper into music hacking. The documents primarily focus on PSG sound. The main documentation includes details and locations for everything inserted into the hack, as well as details and locations for most scripts changed in it. Only look at it if you're curious or are wanting to add your own things to the hack.

    If anyone has any suggestions for Throwback, feel free to share! The "Ideas" channel on my Discord server is the primary place to put them. Just keep in mind that keeping the hack compatible with the official games is an utmost priority. Also, anyone is free to use and modify these files for their own projects so long as you give proper credit.

    Enjoy your time in Kanto! 😁

    Archived original post:
    Spoiler:
     
    Last edited:
    This is so cool! very nice hack. Dude you've got some talent!

    Thanks! To be honest I'm actually amazed I was able to get the music to sound the way it does now. I wouldn't consider myself a master hacker by any stretch of the imagination, but I'm happy with what I've been able to do on this.
     
    It's great, though I can't help but notice an error in Pallet Town's music. :/
     
    This is exactly what I was hoping someone would do with my Music Table swapping hack when I wrote it. I look forward to potentially seeing even more 8 bit tunes running on GBA.

    I like all the nice little touches, like the 8 bit versions of FRLG specific music (stuff that wasn't in RBY, I mean). You didn't have to do that, but you did, and it's a nice little touch.

    Small criticism - to me the Trainer Battle music sounds off. Not sure exactly what - it just doesn't sound right.

    Also, I since worked out how to create a carryable item which is capable of switching the music too. I could forward that code to you if you wanted - it doesn't require JPAN's hack, it runs on code already in the game.

    NOSTALGIA!!!!!!! :D:D:D
     
    Its soo amazing! I love it!

    Thanks!

    It's great, though I can't help but notice an error in Pallet Town's music. :/

    I think I understand what you think is wrong. Is it the wave instrument? Yeah, it really pained me that I could never get it sounding quite right. It's even more noticeable in places like Lavender Town and Pokémon Tower.

    I'll be ecstatic if anyone is able to make it sound just right. Who knows, maybe I'll give the wave another try, too!

    This is exactly what I was hoping someone would do with my Music Table swapping hack when I wrote it. I look forward to potentially seeing even more 8 bit tunes running on GBA.

    I like all the nice little touches, like the 8 bit versions of FRLG specific music (stuff that wasn't in RBY, I mean). You didn't have to do that, but you did, and it's a nice little touch.

    Small criticism - to me the Trainer Battle music sounds off. Not sure exactly what - it just doesn't sound right.

    I wanted to make every possible sound to be heard in 8-bit, if only to allow players to be immersed in the atmosphere of it all. I went so far as to even give a small effort into making the RSE trainer battle music 8-bit, too! Just do a Link Battle for it. I'll be happy to take any criticisms of it and improve myself off of them. Same goes for the "adjusted" credits music.

    As for certain sound effects, such as Level Up/Item Get (why they are the same in this game I will never know...they even had separate tunes in the original RGBY) and Game Corner jingles, they are currently unchanged in any way. Whenever I tried to change them in Sappy, they would become muted in the actual game (they sounded fine in the program). Any ideas on this?

    And those off tunes...they're really starting to bug me now. You know what? I'm going to give this project another go! I'll see how much better I can make this hack with time! And I don't want to just stop at more musical enhancements.

    Also, I since worked out how to create a carryable item which is capable of switching the music too. I could forward that code to you if you wanted - it doesn't require JPAN's hack, it runs on code already in the game.
    Ooh, really? That would be great! I tried making a custom item with JPAN's hacked engine late into my work, but I could never get it right. Every time I tried using it, the game froze. I'd love to be able to get this thing working.

    Just out of curiosity, this code will work for making a Key Item, right?

    And don't worry, people. I'll give you access to it right at the beginning of the game.

    NOSTALGIA!!!!!!! :D:D:D
    Yep! That's exactly what I was going for. I'm a major gamer at heart, both classic and current, and I have a real passion for seeing old classics get remastered at excellently as possible. I've supported game companies who've done this (Nintendo with Zelda: Ocarina of Time 3D, Square Enix with Chrono Trigger for the DS, etc.) and have even worked on another hack for a classic game with all intentions of making it as polished as possible.

    Something as delicate as Pokémon needs to be approached with caution. Pokémon Red is one of my favorite games of all time, yet I couldn't help but feel that FireRed was a bit...out of place for me. It took until I got the GB Sounds item in SoulSilver years later that I realized what it was: those classic 8-bit tunes. Once I started doing my own work to put a few of them in, waves of nostalgia really did sink in. Seriously, my spine shivered from hearing them ingame the first time.

    But now I don't want to stop there. If there's anything else I can change to bring in more charm of the original games while keeping the polished, non-overwhelming system of the 3rd-gen games, I'll be sure to try to do something about it. Improvements will also always be on my mind.

    It's very humbling to know that I could please someone as accomplished at PokéCommunity as you, BTW.
     
    Ooh, really? That would be great! I tried making a custom item with JPAN's hacked engine late into my work, but I could never get it right. Every time I tried using it, the game froze. I'd love to be able to get this thing working.

    Just out of curiosity, this code will work for making a Key Item, right?

    And don't worry, people. I'll give you access to it right at the beginning of the game.

    Yes, of course it does! That's a major difference between his and mines. Mines works as a key item! However, I do have to admit, mines is based off his, so I can't take full credit. I just worked out how to run it without his engine.

    It's very humbling to know that I could please someone as accomplished at PokéCommunity as you, BTW.

    Don't do that. I hate it when people treat me like I'm better than them! :)

    Insert this following code and take note of it's location. It's important for later.

    Code:
    .text
    .align 2
    .thumb
    .thumb_func
    .global gbpitemroutine2
    
    main:
    	push {r4,lr}
    	ldr r0, return
    	bx r0
    .align
    return:	.word 0x080A1323

    Now assemble and insert the following one too. Remember to take note of the location of the routine you just assembled. You'll need it before assembling the next routine.

    Code:
    .text
    .align 2
    .thumb
    .thumb_func
    .global gbpitemroutine
    
    main:
    	push {r4,r5,lr}
    	lsl r0, r0, #0x18
    	lsr r5, r0, #0x18
    	ldr r0, place
    	ldr r1, place2
    	str r0, [r1, #0x0]
    	ldr r0, script
    	bl scriptexecuter
    	ldr r1, scriptflagset
    	mov r0, #0x1
    	strb r0, [r1, #0x0]
    	add r0, r5, #0x0
    	bl bagexiter
    	pop {r4,r5,pc}
    scriptexecuter:	ldr r1, address
    	bx r1
    bagexiter:	ldr r1, exit
    	bx r1
    .align
    script:	.word 0x08FFFFFF
    scriptflagset:	.word 0x03000F9C
    address:	.word 0x08069AE5
    exit:		.word 0x080A103D
    place:		.word 0x08ZZZZZZ
    place2:		.word 0x02039998

    Remember that earlier routine you assembled? Make place: .word 0x08ZZZZZZ point to it, adding one for thumb mode of course! Remember to make the script point to a valid GBP script also.

    Assemble and insert. Note the address down. This is the routine the item will call later to execute a script. (Note how similar it is to JPAN's?)

    Job done! Now you just create the item, and make the field behaviour point to that item routine. Easy, huh?

    ETA: https://www.youtube.com/watch?v=6AlWk9pWr4
    Have a listen to that. It's your version of the main square instruments combined with a custom bass track I made. Sounds closer, doesn't it?
     
    Last edited:
    That's a great project you have here. Also, did you insert only soundtracks from the Pokemon games or from other games as well? That would be really awesome!
     
    Thanks for the code Jambo51! I've got it *mostly* working, but there's one little problem with it. If you got my PM (or didn't, for that matter), please try to shoot one back to me soon!

    I hope I'll be able to get it fully working so you guys can enjoy the convenience of an item in the near future, which might be sooner than expected. I gotta fix a nasty bug (on my part) that affects everyone who chose Squirtle as their starter (it won't show up until the post-game). It's not me discriminating, I promise!

    That's a great project you have here. Also, did you insert only soundtracks from the Pokemon games or from other games as well? That would be really awesome!

    All the "new" tracks in my hack are from the older Pokémon games. I don't know how to directly port tracks of another system's format from other games to GBA games, or if that is even possible. I think there are a few things one could use to get tracks sounding mostly right (record the original, turn it into a MIDI format, create instruments in Sappy that play the right sounds for the track, insert the track, fine-tweak it and presto?). I don't know myself, but if I find out a more practical method I'll get right to trying it out.

    Technically you could emulate any sound you want using the GBA's DirectSound tracks. The only problem with doing that would be that the sound of them would be really muddled thanks to the system's weak speaker. Plus there are only two DirectSound tracks available, limiting your options for overlapping sounds.

    Can you apply this to an existing hack then edit the 8-bit soundbank?

    Are you talking about putting part of my currently-existing custom soundbank into another hack? Unless you plan on using tracks from it, it would be easier to just create a new custom soundbank. Many other, if not most other, existing hacks have different data where I have my tracks, so data would be overwritten and the game would be screwed up if you tried direct porting. Even if you were to change its location, you'd have to change the pointers to the table's the assembly code's new location, as well as change it and the song table if need be. DavidJCobb has a guide up for that that I used to implement this myself. It's really helpful for anyone wanting to add a new soundbank while retaining the original tracks.

    DavidJCobb's guide isn't as "dreadful" as it seems. In fact, if you fully know how to use Sappy Mod 15 a few of the more arduous steps can be passed by! Make sure to also refer to Maginus's guide for general music hacking.

    As for my soundbank, the table begin at 0x800000. The actual tracks appear at 0x808000. You'll also need the assembly code at 0x880000 - 0x880037. And it isn't strictly an 8-bit soundbank, just so you know!
     
    Last edited:
    Thanks for the code Jambo51! I've got it *mostly* working, but there's one little problem with it. If you got my PM (or didn't, for that matter), please try to shoot one back to me soon!

    I hope I'll be able to get it fully working so you guys can enjoy the convenience of an item in the near future, which might be sooner than expected. I gotta fix a nasty bug (on my part) that affects everyone who chose Squirtle as their starter (it won't show up until the post-game). It's not me discriminating, I promise!



    All the "new" tracks in my hack are from the older Pokémon games. I don't know how to directly port tracks of another system's format from other games to GBA games, or if that is even possible. I think there are a few things one could use to get tracks sounding mostly right (record the original, turn it into a MIDI format, create instruments in Sappy that play the right sounds for the track, insert the track, fine-tweak it and presto?). I don't know myself, but if I find out a more practical method I'll get right to trying it out.

    It doesn't seem as if many developers acknowledged the actual strength of the GBA's audio tracks, resorting to most using that French horn that lurks in most of RSE's music, among other instruments. From what I've observed, it seems theoretically possible to just about perfectly insert any track from any old game system up to the Sega Genesis. I don't think the GBA can handle SNES music, considering the massive amount of GBA ports of those games the system saw that had nerfed music (Super Mario Advance titles, Donkey Kong Country titles, Final Fantasy titles, The Legend of Zelda: A Link to the Past, Mega Man and Bass, Super Mario Kart tracks in Mario Kart: Super Circuit, etc.).



    Are you talking about putting part of my currently-existing custom soundbank into another hack? Unless you plan on using tracks from it, it would be easier to just create a new custom soundbank. Many other, if not most other, existing hacks have different data where I have my tracks, so data would be overwritten and the game would be screwed up if you tried direct porting. Even if you were to change its location, you'd have to change the pointers to the table's new location. DavidJCobb has a guide up for that that I used to implement this myself. It's really helpful for anyone wanting to add a new soundbank while retaining the original tracks.

    DavidJCobb's guide isn't as "dreadful" as it seems. In fact, if you fully know how to use Sappy Mod 15 a few of the more arduous steps can be passed by! Make sure to also refer to Maginus's guide for general music hacking.

    As for my soundbank, the listings begin at 0x800000. The actual tracks appear at 0x808000. And it isn't strictly an 8-bit soundbank, just so you know!

    I've applied the patch to a ROM with an edited songtable and music changes, it appears to run just fine.
    If I were to insert a new song after the Teachy TV song, would that be affected by the GB Player?
     
    I've applied the patch to a ROM with an edited songtable and music changes, it appears to run just fine.
    If I were to insert a new song after the Teachy TV song, would that be affected by the GB Player?

    If the main table's listings/tracks were only changed, not extended, and no data currently exists at 0x800000, then the patch should work properly. Of course, a few other things will also change as mentioned in the 1st post.

    My custom table only goes as far as the original table, so it stops at the Teachy TV tune as well. You'd have to extend both the original table and my custom one to add in new tracks (on top of the ones already present) to the game. As long as both tables are the same length and there are tracks specified for both tables, the tunes will be affected by the GB Player as expected.
     
    Last edited:
    Input Time!

    After some deliberation and input from others, I've decided to consider splitting this patch in two: one patch will be my complete hack, while the other will be just the inclusion of the music.

    I should explain. It seems that there is enough interest in using the custom tracks for other hacks. I feel that it would be best to offer the 8-bit tracks as a separate package so others can use them without having to deal with the extra "clutter" that I have in my hack. You know, like the altered events and new tree behavior. If it will lead to interest in music hacking increasing or joy while playing, then I'll be willing to do it. I'll still work on my own hack with full intentions of crafting what I feel is the "definitive" Pokémon (Fire)Red. It was my original intention with this hack, and I now feel I have enough of a drive to advance in my attempts to make it more of a reality.

    If I do make the bare-bones patch, I need to know what people's opinions on a few questions are. The question is a bit too open-ended to be used in a poll, so anyone who wants to share their opinion can do so:

    1) Should I revert the changes I made on a couple of the primary FireRed tracks to what they were in the original game? Currently the GSC Legendary Trio tune plays when facing off against one of the legendary birds or [insert what you collectively call Raikou, Entei, and Suicune here]. Also, I added a second GSC route music for the latter Sevii Isles. Both GBA tracks are unused tunes from RSE and are of a bit noticeably lower quality.

    2) Is there any interest in including any of the conveniences I have in the hack into the lite patch? Some of the subtle changes include once-and-done tree cutting, unlimited use of included Move Tutors, and the end of version exclusivity for Pokémon (they're not distributed randomly, but in the areas they'd appear in their respective games).

    3) Is there any preferred location you'd like the retro soundbank to be in the hack? Are there any areas of the ROM that seem to always be empty in popular pre-existing mini-hacks of FireRed?

    If the lite patch sees the light of day, it won't be until after the next release of the main one. I want to at least change the GB Player into a key item before I start on it.
     
    Last edited:
    After some deliberation and input from others, I've decided to consider splitting this patch in two: one patch will be my complete hack, while the other will be just the inclusion of the music.

    I should explain. It seems that there is enough interest in using the custom tracks for other hacks. I feel that it would be best to offer the 8-bit tracks as a separate package so others can use them without having to deal with the extra "clutter" that I have in my hack. You know, like the altered events and new tree behavior. If it will lead to interest in music hacking increasing or joy while playing, then I'll be willing to do it. I'll still work on my own hack with full intentions of crafting what I feel is the "definitive" Pokémon (Fire)Red. It was my original intention with this hack, and I now feel I have enough of a drive to advance in my attempts to make it more of a reality.

    If I do make the bare-bones patch, I need to know what people's opinions on a few questions are. The question is a bit too open-ended to be used in a poll, so anyone who wants to share their opinion can do so:

    1) Should I revert the changes I made on a couple of the primary FireRed tracks to what they were in the original game? Currently the GSC Legendary Trio tune plays when facing off against one of the legendary birds or [insert what you collectively call Raikou, Entei, and Suicune here]. Also, I added a second GSC route music for the latter Sevii Isles. Both GBA tracks are unused tunes from RSE and are of a bit noticeably lower quality.

    2) Is there any interest in including any of the conveniences I have in the hack into the lite patch? Some of the subtle changes include once-and-done tree cutting, unlimited use of included Move Tutors, and the end of version exclusivity for Pokémon (they're not distributed randomly, but in the areas they'd appear in their respective games).

    3) Is there any preferred location you'd like the retro soundbank to be in the hack? Are there any areas of the ROM that seem to always be empty in popular pre-existing mini-hacks of FireRed?

    If the lite patch sees the light of day, it won't be until after the next release of the main one. I want to at least change the GB Player into a key item before I start on it.

    I would just add the custom 8-bit tracks, like you did with the original patch. In the second patch, could you do it so that the tracks revert to the standard tracks like in HGSS?
    Will you be adding the GB Player as a key item in the second patch?
     
    I would just add the custom 8-bit tracks, like you did with the original patch. In the second patch, could you do it so that the tracks revert to the standard tracks like in HGSS?
    Will you be adding the GB Player as a key item in the second patch?

    Well, this *IS* the original, as in only, patch. And I don't know why I even thought of throwing in other things into a "music-only" patch. If I make a separate one, I'll do just that, so ignore question 2 everyone.

    When you say "revert," do you mean change back to the GBA tracks EVER, or revert to them after saving the game and turning it off/on? You know you can always turn off the GB Player if it is on.

    The next patch will (hopefully) be out within a few days, and it will indeed add the GB Player as a key item. It's fully functional, I'm just trying to figure out what's going on with a particularly annoying bug that's related to it.
     
    Hi, This is amazing work I'm currently working on a retro hack and this is perfect. I would love to see it seperate as a carriable item. I looked at the script. I think the command that triggers the switch is the writebyteoffset? I tried adding the writebyteoffset command to a level script as I want the music straight away, but it didn't work, any help? If you made an ips that swapped the banks so you had the 8-bit first you would be a real legend :D
     
    Last edited:
    Hi, This is amazing work I'm currently working on a retro hack and this is perfect. I would love to see it seperate as a carriable item. I looked at the script. I think the command that triggers the switch is the writebyteoffset? I tried adding the writebyteoffset command to a level script as I want the music straight away, but it didn't work, any help? If you made an ips that swapped the banks so you had the 8-bit first you would be a real legend :D

    Yes, the "writebytettooffset" command is what controls which soundbank is in use. If you want to use it elsewhere in the game, make sure you set or clear flag 0x8F0 before you do it. And the item will be coming very soon, I promise!

    What exactly do you mean by "straight away?" As in, ASAP in-game, or right when you boot the game for the first time? If I was to do the latter, that would demote the GBA music to secondary status, which is not my intention here. I figured that the best way for everyone to enjoy the 8-bit music was to make it an option alongside the standard music, something that people can switch on and off conveniently. I could always do the latter by simply switching which soundbank is the "primary" one, but it isn't exactly what I want from the hack. An optional IPS patch that does that isn't unreasonable, but I'm not making any promises on that.

    Do remember that the soundbank in use stays active even after saving and turning off the game, so you could keep the GB Player on for the entire game if you wanted!

    And I don't deserve the title "legend" regardless of what anyone might think of this hack. If it wasn't for Jambo51's crucial ASM code I wouldn't have gotten the hack in the state it is in now. Unless you're talking about the music itself, of course, but even then that term is quite extreme :nervous:.
     
    Yeah I meant when you boot the first time, if you released a patch that swapped banks I would be very appreciative :)
     
    Back
    Top