Skeetendo

’Cause all games were better on the GBC

You are not logged in.

#51 2013-03-22 17:14:29

comet
Member
Registered: 2012-04-09
Post 171/679

Re: Music Hacking Resource Document

Double speed speeds up loading times significantly (maps load instantly). To change the actual speed of the game, consider removing calls to DelayFrame (gold: 0x32e, crystal: 0x45a) from nonessential functions (that use it for timing besides anything else).

Last edited by comet (2013-03-22 17:16:06)

Offline

#52 2013-03-23 10:48:23

Nic7C5
Member
From: Germany
Registered: 2012-10-13
Post 38/52

Re: Music Hacking Resource Document

comet wrote:

Double speed speeds up loading times significantly (maps load instantly). To change the actual speed of the game, consider removing calls to DelayFrame (gold: 0x32e, crystal: 0x45a) from nonessential functions (that use it for timing besides anything else).

I havn't known that. But this aint, what I ment by double speed. I was talking about a Gameboy or Emulator running with 200% clock speed.

Offline

#53 2013-07-29 16:19:07

YORAMRW
Member
From: The Netherlands
Registered: 2013-03-29
Post 550/1,199
Website

Re: Music Hacking Resource Document

What is the offset of the Route 29 music? Anyone? I need to know it!


Hacks Gameboy 8-bit music in Pokémon Gen I & II, composes 8-bit music in FamiTracker

Offline

#54 2014-01-09 18:52:12

maxpowel
New member
Registered: 2014-01-09
Post 1/3

Re: Music Hacking Resource Document

Hi, thank you so much for this awesome information! Really! But I have a problem, don't know what I'm doing wrong.
Im trying to rip musics (for a pokemon for arduino) without success. This is exactly what Im doing:
Go to position 0x822E (Pallet Town). There I found this header
80 -> 3 channels
c5 67 ->pointer to channel 1
01
5F68 -> pointer to channel 2
02
DE68 -> pointer to channel 3

Now I go to the position 0xC567 where there are the following bytes:
[ 21 ] #C 1/8
[ e1 ] Octave 6
[ c3 ] No note  1/4
[ 3e ] D
byte  b is out of range!

This is the output of my program, out of range means no match found.
In the last byte 3E, 3 matches with note D but dont know what means.

Searching for internet I saw some people that says that an offset must be added when going to the data music but I didnt found this offset (neither I know if this is true).

Can you help me? I will upload all the code to github if I can do something useful.

Thank you

Offline

#55 2014-01-09 19:08:51

YORAMRW
Member
From: The Netherlands
Registered: 2013-03-29
Post 1,020/1,199
Website

Re: Music Hacking Resource Document

maxpowel wrote:

...


Channel 1: $A7C5
Channel 2: $A85F
Channel 3: $A8DE


Hacks Gameboy 8-bit music in Pokémon Gen I & II, composes 8-bit music in FamiTracker

Offline

#56 2014-01-09 19:46:39

maxpowel
New member
Registered: 2014-01-09
Post 2/3

Re: Music Hacking Resource Document

Thank you!
Searching this in google I found this http://datacrystal.romhacking.net/wiki/ … ue:ROM_map but Im wondering if there is any way to calculate it

Offline

#57 2014-01-09 19:51:03

Miksy91
Member
Registered: 2010-10-16
Post 2,049/2,339

Re: Music Hacking Resource Document

The thing is that you're simply calculating pointers in a wrong way.
Since the music header starts at $822E, the rom bank it is in starts at offset $8000 and ends at offset $BFFF.

The first pointer is c5 67 which tells that the channel 1 is located in offset;
0x8000 + 0x67C5 - 0x4000 = 0xA7C5.

Look for more information on calculating GB/C pointers elsewhere.

Offline

#58 2014-01-09 23:18:13

maxpowel
New member
Registered: 2014-01-09
Post 3/3

Re: Music Hacking Resource Document

Didn't know this about pointers, thank you! Now I think that I have eveything. Now I will try to convert it to MIDI or some stantard format

Offline

#59 2014-01-22 20:29:50

FroggestSpirit
Member
Registered: 2012-03-12
Post 221/300
Website

Re: Music Hacking Resource Document

The command E0 in pokemon crystal is pitch bend. The parameters are XX YZ. XX is unknown, Y is octave, and Z is note. This is why I always had issues when porting the RBY songs...


This isn't easy to say, but…
Music and ASM hacker

Offline

#60 2014-01-22 20:32:28

YORAMRW
Member
From: The Netherlands
Registered: 2013-03-29
Post 1,032/1,199
Website

Re: Music Hacking Resource Document

FroggestSpirit wrote:

The command E0 in pokemon crystal is pitch bend. The parameters are XX YZ. XX is unknown, Y is octave, and Z is note. This is why I always had issues when porting the RBY songs...

XX could stand for how fast the pitch slides, to how high/low, and if it sides up or down.


Hacks Gameboy 8-bit music in Pokémon Gen I & II, composes 8-bit music in FamiTracker

Offline

#61 2014-01-22 22:36:50

FroggestSpirit
Member
Registered: 2012-03-12
Post 222/300
Website

Re: Music Hacking Resource Document

There's still something wrong with it, because the safari zone is still the only song that sounds correct when i ported it (out of ones that use pitchbend)
The RBY title screen sounds like the pitch doesn't bend at all

EDIT: Nevermind, apparently in RBY, the pitchbend can effect all channels. The Pitchbend in Crystal doesn't effect the wave channel (not sure about channel 2).
The title screen has pitchbend on the wave channel, so I had to improvise...

Last edited by FroggestSpirit (2014-01-23 00:37:02)


This isn't easy to say, but…
Music and ASM hacker

Offline

#62 2014-11-17 13:20:52

pigdevil2010
New member
Registered: 2014-09-29
Post 7/8

Re: Music Hacking Resource Document

I decided to look into the disassembly of Crystal to find wave samples. There are 10 wave samples you can use in channel 3 via DC xx command, the rest is undefined and used the drum kit data as a sample. I plotted them in my tracker program and play it.

Here is the wave pattern of every 16 samples:
n2bBXga.png

Here is what they sounded like (each sample plays middle C note for 1 second)

Offline

Board footer

Powered by FluxBB