Skeetendo

’Cause all games were better on the GBC

You are not logged in.

#1 2016-05-05 04:05:16

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

PokeAsm Player

I have been making a music editor for pokemon music, and I have the player working well, but not perfect.
Right now, all you have to do is drag and drop a PokeCrystal music ASM onto the exe to play it. (You can also have a filetype set to open with it).
Some commands are not implemented yet, like pitch bend, and vibrato is not perfect (I'm not sure why).
Anyways, here it is. CURRENT VERSION IS 0.2
https://anonfiles.com/file/f7e2f3add8ab … dc15c9e33f
Do not open other files in it. I haven't tested much, and I'm not responsible for unpleasant behavior.

Changes:
-Have each channel play on separate indexes (Song will sound normal, and it *should* fix all looping abnormalties)
-Basic inteface, you can mute/unmute channels with the number keys
-Songs now properly loop finally (songs that call other song files don't do that)
-Version number now displayed.
-No more crashes when opening without a file.

Known Bugs:
-Crashes when you drag a file it doesn't support
-Vibrato seems to play back slightly slower. (noticable on rocket hideout)
-Tempo changes are sometimes before when it should happen (this confuses me)

What's Next:
-Properly streaming the audio, and removing the need for Wav samples. (this should also fix vibrato)

Last edited by FroggestSpirit (2016-05-24 16:08:23)


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

Offline

#2 2016-05-06 03:51:40

ShantyTown
Member
Registered: 2013-12-04
Post 291/344

Re: PokeAsm Player

This is a super cool project.  I wonder if creating something like this would be easier by forking an existing GB emulator, and rewiring it appropriately.  Then, you could be confident that the engine is exactly the same.

Offline

#3 2016-05-06 15:02:24

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

Re: PokeAsm Player

ShantyTown wrote:

This is a super cool project.  I wonder if creating something like this would be easier by forking an existing GB emulator, and rewiring it appropriately.  Then, you could be confident that the engine is exactly the same.

The only thing I'm unsure of, is why vibrato doesn't play right (I noticed it most in Rocket Hideout). Everything else that isn't in are just parts I haven't implemented yet. A gameboy emulator could give more accurate sound quality, but I feal right now it isn't much of an issue, because the engine to play back the songs is a separate thing, and would still need to be written.

Edit: vibrato does update at 60 frames per second, right?

Last edited by FroggestSpirit (2016-05-06 15:02:55)


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

Offline

#4 2016-05-06 17:22:22

Danny-E 33
Administrator
Registered: 2012-06-09
Post 951/1,119

Re: PokeAsm Player

This is pretty neat.

How did you decide what wave and noise instruments to use?

I guess crystal's instruments are just pre loaded?

Offline

#5 2016-05-06 18:59:19

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

Re: PokeAsm Player

Danny-E 33 wrote:

This is pretty neat.

How did you decide what wave and noise instruments to use?

I guess crystal's instruments are just pre loaded?

All the sounds are wav samples. I was hoping to "generate" them, but i'm not too sure how to code that (especially noise channel). I think this way is fine though for quickly testing songs. I'm working on another version with a quick bugfix, though I'm not sure why tempo change isn't working... It seems I already coded it in.


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

Offline

#6 2016-05-06 23:28:24

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

Re: PokeAsm Player

I'm still wondering what that "notetype" command is for. It's everywhere in every music ASM from pokecrystal as well as pokered, but there is no hex command in the music documentation that equals the notetype. Could someone explain how this works?


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

Offline

#7 2016-05-07 14:28:13

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

Re: PokeAsm Player

YORAMRW wrote:

I'm still wondering what that "notetype" command is for. It's everywhere in every music ASM from pokecrystal as well as pokered, but there is no hex command in the music documentation that equals the notetype. Could someone explain how this works?

Note type is command D8. It sets the speed and envelope. It's needed to be called before any notes play for each channel, so the song knows how fast to play it. C speed is usually default, but for example, if you change it to 6, it will play 2 times as fast as C. 8 will play 1/5 times faster, etc.


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

Offline

#8 2016-05-08 16:48:12

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

Re: PokeAsm Player

FroggestSpirit wrote:
YORAMRW wrote:

I'm still wondering what that "notetype" command is for. It's everywhere in every music ASM from pokecrystal as well as pokered, but there is no hex command in the music documentation that equals the notetype. Could someone explain how this works?

Note type is command D8. It sets the speed and envelope. It's needed to be called before any notes play for each channel, so the song knows how fast to play it. C speed is usually default, but for example, if you change it to 6, it will play 2 times as fast as C. 8 will play 1/5 times faster, etc.

Well, that makes a lot of sense and everything becomes much clearer now. Notetype is actually just the same as that DC command from RBY. Thanks for your explanationn. :)


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

Offline

#9 2016-05-09 03:01:31

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

Re: PokeAsm Player

YORAMRW wrote:
FroggestSpirit wrote:
YORAMRW wrote:

I'm still wondering what that "notetype" command is for. It's everywhere in every music ASM from pokecrystal as well as pokered, but there is no hex command in the music documentation that equals the notetype. Could someone explain how this works?

Note type is command D8. It sets the speed and envelope. It's needed to be called before any notes play for each channel, so the song knows how fast to play it. C speed is usually default, but for example, if you change it to 6, it will play 2 times as fast as C. 8 will play 1/5 times faster, etc.

Well, that makes a lot of sense and everything becomes much clearer now. Notetype is actually just the same as that DC command from RBY. Thanks for your explanationn. :)

In red and blue, it was actually Dx YY where x=the speed and YY is the envelope. this limit the speed to 4-bit in red/blue


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

Offline

#10 2016-06-09 05:59:07

Rangi
Member
Registered: 2016-05-09
Post 19/870

Re: PokeAsm Player

Chrome and Firefox both give Safe Browsing warnings about anonfiles.com, and Chrome won't even download an "unsafe" file. But VirusTotal doesn't report anything wrong with the .exe, and it runs fine on my computer. Can you rehost it on, say, MediaFire or Dropbox?

(Also, it would be convenient if the window stayed open and let you drag .asm files directly to it, or had a menu bar with basic functions like File→Open/Close/Exit, Play→Play/Pause/Stop, and Help→About. No big deal though, it's already a big improvement on compiling the whole ROM every time I change something. Thanks for releasing this!)

By the way, may I use some of the RBY and HGSS tracks from Crystal Complete for Polished Crystal? It's pretty much as the name says, an improved Crystal version that's (mostly) in line with something Game Freak could have released themselves, if a time-traveling programmer had put in future generations' features and Pokémon. I'll be sure to give you credit.


Pokémon Polished Crystal (GitHub) — version 2.2.0 released
Pokémon Red★ and Blue★: Space World Edition (GitHub) — updated August 19!
Polished Map: pokered+pokecrystal map, tileset, and palette editor — version 3.5.1 released!

Offline

#11 2016-10-17 02:51:46

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

Re: PokeAsm Player

Rangi wrote:

By the way, may I use some of the RBY and HGSS tracks from Crystal Complete for Polished Crystal? It's pretty much as the name says, an improved Crystal version that's (mostly) in line with something Game Freak could have released themselves, if a time-traveling programmer had put in future generations' features and Pokémon. I'll be sure to give you credit.

feel free to, credit on the music is appreciated :)


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

Offline

#12 2016-10-19 13:28:00

Rangi
Member
Registered: 2016-05-09
Post 256/870

Re: PokeAsm Player

FroggestSpirit wrote:

feel free to, credit on the music is appreciated :)

Thank you very much!

I saw that you're publishing more tracks on SoundCloud. Are you going to publish their code too? I'd like to use your Battle! Sinnoh Champion and Battle! Unova Trainer themes. It's fine if you don't want to, of course.

(Cynthia's theme is second only to Iris' as my favorite Champion battle music. Your conversion sounds very close to the Platinum original, atmosphere-wise.)

Last edited by Rangi (2016-10-19 13:29:44)


Pokémon Polished Crystal (GitHub) — version 2.2.0 released
Pokémon Red★ and Blue★: Space World Edition (GitHub) — updated August 19!
Polished Map: pokered+pokecrystal map, tileset, and palette editor — version 3.5.1 released!

Offline

Board footer

Powered by FluxBB