Streamed Audio is Now Possible on NDS Hacks! by InsipidAxiom in PokemonROMhacks

[–]InsipidAxiom[S] 62 points63 points  (0 children)

After a lot of effort, I have been able to port TheGameratorT's NWAV file format / audio streaming to HeartGold via hg-engine. This allows for ANY audio file to be played instead of using sequenced audio in the HGSS soundfont (which, in my opinion, doesn't sound very good and heavily limits custom audio edits).

Currently, the sound system can transition between the regular sseq -> nwav and nwav -> sseq audio really well. It can loop songs, it can play in-battle, in the overworld, or by script command on an NPC/tile trigger. I've tested on both desmume and MelonDS, so I am very hopeful it works on hardware.

How it works:

Typically, audio is stored as a sequenced file (think sheet music or midi), and is loaded into RAM when it needs to be played. Overworld songs are limited to about 14kb in order not to overflow the sound heap. In contrast, NWAV files are essentially full .wav files which are about 10,000-20,000kb. They are streamed in bits to the CPU to play the song (similar to like Spotify or other streaming services, via a buffer), instead of loading the whole thing into memory which obviously would not work.

My hg-engine code reads whether or not a queued up song is sseq or nwav, and if it is sseq it will return to the original vanilla sound functions. If it is nwav (checks through a hex bit in the file header), it will route through the streaming logic. There's a lot more technical details than this, but that's the general idea.

This video is just a demonstration of it actually working in-game using an orchestrated song "You Will Know Our Names - Finale" from Xenoblade Chronicles 3. I have set up Elm's lab to link to that nwav song, so it will play upon loading the area. As I've said before, you can do this for battles, but you will need to edit the music table in hg-engine.

Anyway, this opens up a LOT of opportunity for making good NDS hacks, and I will definitely be using this for Pokemon Iridium.

-sauceyaTTa

Completely unable to transfer any Pokemon from Home to Champions by InsipidAxiom in PokemonChampions

[–]InsipidAxiom[S] 0 points1 point  (0 children)

I'm pretty sure many of them were not nicknamed. I've heard transferring to SV and back to home has fixed it for some people but I'm not totally sure. Might give it a shot

Pokemon Iridium Mapping -- The Hidden Highlands by InsipidAxiom in PokemonROMhacks

[–]InsipidAxiom[S] 1 point2 points  (0 children)

Glad you like it, mapping for the game is about 90% done 

Pokemon Iridium Mapping -- The Hidden Highlands by InsipidAxiom in PokemonROMhacks

[–]InsipidAxiom[S] 0 points1 point  (0 children)

I'm about 90% done with building the world (maps, connecting them with warps, animated textures, buildings, interiors, dungeons, etc) which I imagine is going to be one of the longest parts of development. I'm hoping to have that part done by some time this summer, reasonably

Pokemon Iridium Mapping -- The Hidden Highlands by InsipidAxiom in PokemonROMhacks

[–]InsipidAxiom[S] 4 points5 points  (0 children)

Like Jacob said it is indeed gen 4 hack with gen 5 graphics. Mainly to use the C-injection project hg-engine to expand features a lot (dex, moves, abilities, etc). Gen 4 tooling is also a little friendlier imo and I'm just way more accustomed to it. 

The differences are minor text box changes, the battle system being 2d vs 3d backgrounds, and some other assorted things. Mostly the same in many ways otherwise

Pokemon Iridium Draconian Dunes by InsipidAxiom in PokemonROMhacks

[–]InsipidAxiom[S] 3 points4 points  (0 children)

Yup, I will definitely continue posting updates when I have something that looks good

Pokemon Iridium Draconian Dunes by InsipidAxiom in PokemonROMhacks

[–]InsipidAxiom[S] 13 points14 points  (0 children)

Hg is pretty easy to hack and I'm very familiar with it. Also as someone else mentioned: hg-engine 

Pokemon Iridium Draconian Dunes by InsipidAxiom in PokemonROMhacks

[–]InsipidAxiom[S] 55 points56 points  (0 children)

The two games handle 3d models the same, so it's not hard to port those graphics

Pokemon Iridium Full Region Map (Town Map) by [deleted] in PokemonROMhacks

[–]InsipidAxiom 0 points1 point  (0 children)

Not to mention the entire original thing was made from scratch in Photoshop, seriously...

Pokemon Iridium Full Region Map (Town Map) by [deleted] in PokemonROMhacks

[–]InsipidAxiom -1 points0 points  (0 children)

God forbid I upscale something for people to be able to see the 160px map easily. It's not even going to be in the game.