• 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.

Tool: SongInserter Advance - A new era in GBA music inserting!

Status
Not open for further replies.

gamesharkhacker

SupremoHack Entertainment Inc.
47
Posts
14
Years
Hey guys! just keeping you updated with the app (NEW GUI!!!)

WARNING: below image may cause you to have an epicness spasm

sia alpha 1 sneak peek.png
 

Tropical Sunlight

The Faltine
3,476
Posts
16
Years
The new inferface looks great, and I can't wait to replace my sucky Sappy with this. Thanks!

Oh and... EPICNESS SPASM! 4325fggqjwghkrhkjghwkbkwbfwkefb cw rwt wwgwk ehezhlrgheljrhelhgelr
 

$_$

?????????
65
Posts
17
Years
  • Age 31
  • Seen Oct 4, 2016
How do you brinng the inserted song up in the game?? Or better how do I get it to the Music no. for Advance Map?
 
Last edited:

Skara

THIS. IS. SEMPITERNAL.
350
Posts
15
Years
So, can I put in a music file, put the track in a free space (found in free space finder) and type in the id that the music's inserted into when changing music on Advancemap?
 

timaeus222

Music Composer, Mixing/Mastering Engineer
56
Posts
13
Years
Yeah, but this function will be in a later release. Right now, I'm concentrating on the main parts of the program, aka, inserting a song.
Nonetheless, you WILL be able to export midi files (eventually).

YES! That's exactly what I want to do. I have FL Studio, and I'd love to insert a custom MIDI remix. :D
 

ipatix

Sound Expert
145
Posts
15
Years
The interface looks great, anyway I have to say a few things.

Does this also work with non Pokemon games?
Is this program limited to an anmount of 10 tracks?

I know Pokemon games are usually limited to 10 tracks (except fanfares and soundeffects), but it is actually possible to hack this and I also had already success with it.

Why is there a textbox where to insert the anmount of tracks?
I think you could make this program able to get the number of tracks by the number of checkboxes that are checked.

Another suqqestion: It is also very nesty to enter a new offset for each new track and the header. Why don't you calculate each offset of the second and other tracks out of the length of the other tracks and of the first offset?

Keep on your work^^
 

gamesharkhacker

SupremoHack Entertainment Inc.
47
Posts
14
Years
answers to some questions

The interface looks great, anyway I have to say a few things.

Does this also work with non Pokemon games?
Is this program limited to an anmount of 10 tracks?

I know Pokemon games are usually limited to 10 tracks (except fanfares and soundeffects), but it is actually possible to hack this and I also had already success with it.

Why is there a textbox where to insert the anmount of tracks?
I think you could make this program able to get the number of tracks by the number of checkboxes that are checked.

Another suqqestion: It is also very nesty to enter a new offset for each new track and the header. Why don't you calculate each offset of the second and other tracks out of the length of the other tracks and of the first offset?

Keep on your work^^

@ipatix

1) It will be compatible with other games in the future (near future)
2) Ten tracks is max because otherwise you will start getting problems.
3) And yes the program does get the tracks from how many tracks are loaded. And why is there a textbox? cause there can be! :)
4) Yeah there is a button for this. The "Optimize tracks for Track-After-Track Insertation" button makes the tracks insert one after another.
This optional you can put them where you want anywhere in the rom or "Track-After-Track".

Thanks, GSH.
 

WrathOfArceus

Arceus Tamer
15
Posts
12
Years
  • Seen Aug 16, 2011
How do you find the songs voicegroup,and header,And how do you find the tracks Offsets?
 

WrathOfArceus

Arceus Tamer
15
Posts
12
Years
  • Seen Aug 16, 2011
You dont need to find the songs voicegroup. You just get the header from Sappy, and the Track offsets: you can use the originals (from Sappy) or find some free space in a rom with a Free Space Finder or a Hex Editor.

But I have windows 7,And sappy 2006 will not work.What do i do
 
299
Posts
12
Years
Semi Very Small Bumpy.
This tool looks good.
But i need SIA vs Sappy Comparison.
And how the friggin does it "ELF.exe with a big E that has too many ?????? letters when opened" work?

Please make SIA import .s files.
I Hate.O files.

@Other People: Will i use SIA or Sappy?
I've found a way to get the updated .xml for Sappy 2005 but features are crap.
I wanted to insert Xion's Song(KH:356/2 DAYS) in the title screen of Pokemon Decades.
And wanted Phoenix Wright for an Evil Team theme.
 

gamesharkhacker

SupremoHack Entertainment Inc.
47
Posts
14
Years
Semi Very Small Bumpy.
This tool looks good.
But i need SIA vs Sappy Comparison.
And how the friggin does it "ELF.exe with a big E that has too many ?????? letters when opened" work?

Please make SIA import .s files.
I Hate.O files.

@Other People: Will i use SIA or Sappy?
I've found a way to get the updated .xml for Sappy 2005 but features are crap.
I wanted to insert Xion's Song(KH:356/2 DAYS) in the title screen of Pokemon Decades.
And wanted Phoenix Wright for an Evil Team theme.

.o files are made exactly the same way u make .s files.
Theres no need to hate them.
 

Corvus of the Black Night

Wild Duck Pokémon
3,416
Posts
15
Years
Nice. Does it support loops? If not, I don't mind offering my information to help. Also, you could make it so that you could change the instruments/volume/pitch after inserting a track too, I wouldn't mind showing you how to do that.

Basically loops work like this:

[loop command] [pointer] [0xB1]

What are the loop commands? Well...

Code:
0xB2 = Jump command, to jump the playback pointer to another location in  memory. Often used to loop songs by jumping back to the beginning of  it.

0xB3 = Jump command where playback can jump back to after it  again later. Used when you want to repeat part of a song before  continuing with the rest of it.

0xB4 = Return to last 0xB3 command.
and 0xB1, as you probably know, is just the end command. So by implementing use of these commands you could make looping easy for the common hacker!

In addition, the following commands change track properties:
Code:
0xBB = Set Tempo

0xBC = Set Pitch offset

0xBD = Set instrument

0xBE = Set Volume

0xBF = Set Panning
So then, you could make it possible to change these things without reinserting the song. Nifty!

Anyways those are just suggestions if you didn't know about them already. This program looks pretty promising although I hope you make it compatible with all sorts of games!

I know TONS about hacking music manually so I wouldn't mind offering my expertise.
 

gamesharkhacker

SupremoHack Entertainment Inc.
47
Posts
14
Years
Roadblock!

Hey guys ive hit a crappy roadblock while programming this tool.

I cannot figure out how to convert the file in to hex (eg. B1 00 44 FE 67) then grab a certain part of a .o file and save that into a String.

CAN ANY VB6 PROGRAMMERS PLEASE HELP!

Thanks, GSH
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
Hey guys ive hit a crappy roadblock while programming this tool.

I cannot figure out how to convert the file in to hex (eg. B1 00 44 FE 67) then grab a certain part of a .o file and save that into a String.

CAN ANY VB6 PROGRAMMERS PLEASE HELP!

Thanks, GSH

What specifically do you need to be done?

EDIT: Hold on, I think I understand...

EDIT 2: Here, I know this works with VB .NET 2010...
<Code Removed>

They both will read a string from a file, using a BinaryReader.
 
Last edited:

gamesharkhacker

SupremoHack Entertainment Inc.
47
Posts
14
Years


What specifically do you need to be done?

EDIT: Hold on, I think I understand...

EDIT 2: Here, I know this works with VB .NET 2010...
Code:
    'One method
    Public Function GetStuff(ByVal offset As Integer, ByVal count As Integer)
        Dim br As BinaryReader = New BinaryReader(File.OpenRead("myfile.file"))
        Dim temp As String = ""
        Dim hello As Byte()

        br.BaseStream.Position = offset
        hello = br.ReadBytes(count)
        For Each b As Byte In hello
            temp += Convert.ToChar(b)
        Next

        br.Close()
        br.Dispose()
        Return temp
    End Function

    'Method two
    Public Function GetStuff(ByVal offset As Integer, ByVal count As Integer)
        Dim br As BinaryReader = New BinaryReader(File.OpenRead("myfile.file"))
        Dim temp As String = ""

        br.BaseStream.Position = offset
        temp = br.ReadString(count)

        br.Close()
        br.Dispose()
        Return temp
    End Function
They both will read a string from a file, using a BinaryReader.

Sorry man i need VISUAL BASIC 6.0 CODE :D

Thanks, GSH
 
Status
Not open for further replies.
Back
Top