#Mini Doom GMS port help

1 messages · Page 1 of 1 (latest)

frosty carbon
#

Hey all! I was hoping for a little help getting the audio for Mini Doom (a free GMS built game on itch.io) to work.

It seems to use the GM WWise audio plugin/extension and as a result all the audio files are stored in .bank files and the runner version I matched up to get this game to run on handheld is not letting the audio work for some reason.

The main clue I have gotten so far is from the log file at the PrepareAudio() or PrepareSound() step it has a permission error trying to get to or write to /run/user/1000//pulse

The // is not a typo and I am assuming that may be the main and or only cause for the audio not working is somewhere it is reading or trying that path instead of /

I'll post any more info that I might find and the links to Mini Doom on itch io and also what version of GMS it is running and such. I know that it is bytecode v17 but don't remember the rest off the top of my head and am not around my PC right now.

Any help and or questions are appreciated.

#

Feel free to reply here or pm me also. Really wanna get this game working fully or close to fully so I can play it portable and let others try it also. I love Portmaster so far and playing all these native games!

valid spindle
#

<@&1216123318122577972>

#

looks like @tepid mica took a crack at this one a while back #💡|porting-talk message

tepid mica
#

Hi😄

#

Yeah i tried this a while ago, but it uses a windows only plugin for sound managing.

#

I know fraxinus edited a game to use the native gamemaker sounds manager instead of fmod: #1243946385435267072 message

brazen plover
#

they have a mac version on the itch page, i wonder how that gets around the issue

tepid mica
#

Thats mini doom 2😄

#

Also good btw

brazen plover
#

ah of course it is :/

tepid mica
#

That one has input issues thoughdoggokek

brazen plover
#

the game art is really on point

bleak spade
#

So an issue with gmloader is that it can’t utilise plugins (.dlls) so you would possibly have to import the sound files into the data win

#

And rewrite the code involving the sound

#

I used quite a bit of ChatGPt and trial and error 😂

tepid mica
#

Its only 4 ogg's so it would probably be a realistic one to actually do.

bleak spade
#

Will take a look at this after Wednesday

tepid mica
#

👌

bleak spade
#

Not too sure if the data.win can import and play the . Bank files or whether it needs to be converted to a different audio format

tepid mica
#

Wait, i got confused as welldoggokek

#

Minidoom 1 has input issues, minidoom 2 has audio issues

bleak spade
#

actually looking at the files... i think mini doom is the .ogg but input issues, and mini doom 2 is the one with bank files

tepid mica
#

Yup

frosty carbon
tepid mica
#

Yeah they both run, but both with issues😄

frosty carbon
frosty carbon
tepid mica
#

the exe is an archive

#

So you can use 7zip to extract the files

naive tulip
naive tulip
#

Actually made sound working embedding it as wav in file can upload patch if someone need

tepid mica
#

Nice, you can start a thread for it 🙂

frosty carbon
naive tulip
#

Converted ogg music to wav and added it as embedded instead of external one's using utmt

tepid mica
#

Did you try zip storing the ogg's to the apk first?

#

I remember that being enough for mini doom 1

naive tulip
#

nope

naive tulip
tepid mica
#

Game.apk/assets 🙂

#

I think i have the script snippet, one moment

#
    if [ -n "$(ls ./gamedata/*.ogg 2>/dev/null)" ]; then

        # Move all .ogg files from ./gamedata to ./assets
        mv ./gamedata/*.ogg ./assets/
        echo "Moved .ogg files from ./gamedata to ./assets/"

        # Zip the contents of ./sm.apk including the new .ogg files
        zip -r -0 ./sm.apk ./assets/
        echo "Zipped contents to ./sm.apk"
    fi```
#

That usually does the trick for audio issues

naive tulip
#

Only problem with gptk above is that arrows won't work in menus it not required to start the game thought so i guess fine

tepid mica
#

Could probably be worked out in utmt as well, or are they only selectable with mouse?

#

Not fun to patch, thats for sure😄

naive tulip
#

it works on pc

#

not on handheld

tepid mica
#

Yeah this game has some really weird input issues

#

I got some of the controls to work but gave up after a little while

naive tulip
#

there are 2 different functions with different input reads with different keys bound

tepid mica
#

Sounds fun😄

naive tulip
#

one for menu and one for game itself

tepid mica
#

I mean if the game is fully playable and theres no need to use the menus... Could be worse i guess

naive tulip
#

probably || not work as or on handheld

naive tulip
tepid mica
#

Yup, it can be done but its very tedious work

#

Just not worth the effort unless you really like the game

naive tulip
#

i don't even know how to extract this bnk files

tepid mica
#

Theres tools out there that can do it

#

And then youd have to reintegrate them

#

But figuring what to play at what moment is kinda nuts

#

Someone did this for Pizza tower on switch, its like 3000 lines of code for audio relocation😄

naive tulip
#

Wow

#

shocking

tepid mica
#

Yeah some people are passionate about certain games i guess😄

naive tulip
frosty carbon
drifting perch
# naive tulip Indeed in minidoom2 whole sound usage are on this wwise dll requires to rewrite ...

I wonder if wwise has something related with this https://github.com/CaKlassen/gmwwise

I've looked at the function exported in libgmwwise_profile.dylib (MacOS). I've googled for GMWLoadBank which lead me there. Other functions names match (GMWSet2DListenerPosition, GMWStopAll ...)

What's your opinion ?

poke @tepid mica

GitHub

A Wwise Plugin for GameMaker: Studio. Contribute to CaKlassen/gmwwise development by creating an account on GitHub.

#

md5 match

tepid mica
#

Yes this would need some timeconsuming work to replace the audio manager with something native to gms

drifting perch
#

where would it need to be impletmented ?

#

in the game.droid ?

tepid mica
#

Yes

#

@bleak spade has done it once for a similar situation.

#

I think we talked about how in this thread, a little above😄

ruby haven
#

Yep. These would be nice! Been playing these two games for over a year now hoping a sound fix may come along 😥

#

👾

drifting perch
#

I'm stuck with the cli tool of UMTM (MacOS). If I find the courage to boot Windows on my NUC I'll have a look at disassembling the game.win

#

trying to dump the code of minidoom2 doesn't work with UMT_DUMP_ALL wildcard

./UndertaleModCli dump -c UMT_DUMP_ALL doom2/game.ios
Required argument missing for command: dump
#

Has it even worked one day ?

#

^^

tepid mica
#

You should try the gui version, its much better 🙂

#

Join the dark side

drifting perch
hexed pumice
#

So guys, I was able to input the music and sound on MiniDoom. Using the gptk provided by ikity it's now 100% playable.

#

Just a reminder. You have to download the game at https://gamejolt.com/games/mini-doom/206421 and rename the minidoom.exe to minidoom.zip, after that you can unzip and you have access to the game files you need to put on the gamedata folder.

Game Jolt

🎮 MiniDOOM is very short tribute game based on Doom 1. It transforms the classic FPS into a 2D action platformer. Collect keys and battle your way through 5 stages with the classic Doom weapons,...

#

I think the gptk still needs a little bit of work, but i'll play some more of the game to see if the placement of the buttons is ideal as is.

hexed pumice
#

Did not tried that one yet. By the bitcode on the GMS I don't think it will, because it's 2.2.2.3 and games on that particular bitcode if tested run super slow. But I'll try it.

#

But MiniDoom it's running amazing. Made it to stage 4. Super fun, the rocket launcher is so cool.

vague pendant
#

Little pinky bastards got me

hexed pumice
#

They need two shotgun shots

#

In running away from them, lol 😆

vague pendant
#

They lashed me quick fast

ruby haven
#

It does work😊 I believe it just needs your sound fix lovin😅

ruby haven
ruby haven
#

..on this one, I mean

#

Would be a killer ready to run

hexed pumice
#

No I just put this together right now.

#

But I agree

#

This is a killer ready to run

#

And I think this one is possible

ruby haven
#

PT 2 is same people/person, yes?

hexed pumice
#

Yes, Cavalera studio

#

Something like that

#

They have a website

ruby haven
#

Talent!

hexed pumice
#

So must be easy to get in touch

ruby haven
#

If you get pt2 up n running, and get permission to distribute...just wow!

drifting perch
hexed pumice
#

Yeah, they have a lot of cool stuff

drifting perch
#

javascript 😭

ruby haven
#

I'll test this later btw.. Unfortunately I'm not with my handhelds

drifting perch
#

an flash for audio XD that's 200% dead for this one

#

lol

#

I'll test Ajayu I think

#

it's gm as well

hexed pumice
#

Maybe we can get a full license for all games

#

that would be sweet

drifting perch
#

Go with your tuxedo

hexed pumice
#

This MiniDoom is a candidate for the staff picks. It's pretty good. I'm impressed.

drifting perch
#

With the music this is another story ! ❤️

vague pendant
hexed pumice
#

So update on the MiniDoom 2. Runs fine and add some mouse support on the .gptk. Sound though, that's way beyond what I can do. It uses some some file structure I never encounter on GMS games. Nothing about it inside the data.win also.

#

So it runs, but probably no sound without some serious patching.

#

At least we got the first one.

#

Also updated the gptk on the first game and now you can also play with the left stick and jump with a.

ruby haven
#

It's been like a year ago so my memory was foggy on it

bleak spade
hexed pumice
#

I wouldn't mind playing without sound. If it's ok, I would release it without it and instruct people to make doom guitar sounds with their mouths while they play, lol. 😄

#

But this is a job either for someone with a lot of skill or maybe the developer themselves, if they get excited with the possibility of the port.

ruby haven
#

I thought same! Perhaps someone well skilled with that stuff will download it n have luck..imo, I think it's worth it too!

hexed pumice
#

Gonna get in touch with the developers to see if we can distribute the first game. Once I get an answer, I'll make a dedicated tread so we can test it out and do a PR.

drifting perch
ruby haven
#

✔ RG40xx muOS

#

✔ RG353m Arkos
@hexed pumice ..if you'd like, I made up a .sh that will extract the exe and delete all the unneeded stuff. 🎩🐒all ya need is to add the zipper to libs and it's license to minidoom/.

ruby haven
#

Of course this method won't be needed if ya get permissions but I figured for the user benefit, for time being, might be cool to just pop in the exe n be done.

#

The above sh also corrects lib path and couple other little things.

ruby haven
#

Such a rip'n soundtrack!❤

#

I patched mine to 640x480 and oh boy is it nice!

#

This camera cuts no justice I'm afraid.

hexed pumice
#

This is coming along great. Gonna send the message for the developers today. Let's hope they give us their blessings. 😄

hexed pumice
#

Send some via Twitter and Behance. Hopefully i'll get some attention on Behance, since i've used my professional account and there a lot of my designer work on there. Now send in the good vibes.

vague pendant
ruby haven
# vague pendant Can you share sir?

I can walk you through using UTMT to patch yours. It's super easy😌
I'm not sure if a 640 patch has been considered for this port. But could easily be incorporated

hexed pumice
#

If we get permission to distribute, we may do it, but since we need to alter the data.win, it's a user fix for now.

tepid mica
#

The patches stretch the display, so not native 4:3. Not everyone likes that 🙂

vague pendant
#

Well I figured it out. Thank you gentlemen

#

Was there anything additional I needed to do other than change the res and put the .win file in there?

ruby haven
finite charm
drifting perch
#

working on minidoom2 trying to load the sound banks in a C++ program with the last wwise SDK 🤪 Not sure it will be retrocompatible, but it is worth trying

root@ebf47c554692:/devel/wwisetest# ./test
START
AK::MemoryMgr::Init Done
AK::StreamMgr::GetDefaultSettings Done
AK::StreamMgr::GetDefaultDeviceSettings Done
AK::SoundEngine::GetDefaultInitSettings Done
AK::SoundEngine::GetDefaultPlatformInitSettings Done
AK::MusicEngine::GetDefaultInitSettings Done
Segmentation fault
#

the error is not yet related to the sound bank

#

I'm working with a sample sound bank

#

from the SDK

drifting perch
#

I was expecting that as I'm working with a newer SDK version

RK3566:~/wwisetest # file minidoom2/Init.bnk
minidoom2/Init.bnk: Wwise SoundBank (little-endian), version 120, id 50C63A23, SFX
RK3566:~/wwisetest # ./test
START
AK::MemoryMgr::Init Done
AK::StreamMgr::Create Done
g_lowLevelIO.Init( deviceSettings ) Done
AK::SoundEngine::Init Done
AK::MusicEngine::Init Done
AK::SoundEngine::RegisterGameObj Done
AK::SoundEngine::LoadBank Error 64

AK_WrongBankVersion = 64, ///< The bank version is not compatible with the current bank reader.

#

The SDK I'm using is expecting version 152 as I can see in a soundbank sample from the SDK:

#
RK3566:~/wwisetest # file BGM.bnk
BGM.bnk: Wwise SoundBank (little-endian), version 152, id 1899AC8D
ruby haven
#

Getting exciting. I feel like you're getting warmer! The music rips!

drifting perch
#

I'm affraid it might fail but I'm trying

ruby haven
#

3718nukacola here's to hoping it works

drifting perch
#

Not sure it will work, but I'll try

cde@arcticfox wwisetest % python3
Python 3.12.6 (main, Sep  6 2024, 19:03:47) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> bnk_out=open('minidoom2/Init_152.bnk','wb')
>>> bnk_in=open('minidoom2/Init.bnk','rb')
>>> bnk_out.write(bnk_in.read(8))
8
>>> bnk_out.write(b'\x98')
1
>>> bnk_in.read(1)
b'x'
>>> bnk_out.write(bnk_in.read())
5305
RK3566:~/wwisetest # file minidoom2/Init_152.bnk
minidoom2/Init_152.bnk: Wwise SoundBank (little-endian), version 152, id 50C63A23, SFX
RK3566:~/wwisetest # ./test
START
AK::MemoryMgr::Init Done
AK::StreamMgr::Create Done
g_lowLevelIO.Init( deviceSettings ) Done
AK::SoundEngine::Init Done
AK::MusicEngine::Init Done
AK::SoundEngine::RegisterGameObj Done
AK::SoundEngine::LoadBank Done
#

It loads but does it work...

drifting perch
#

Let's load a bank with sound after the init bank...

#

first I'll script the version hack

#

getting closer to the next error doggokek

RK3566:~/wwisetest # ./test
START
AK::MemoryMgr::Init Done
AK::StreamMgr::Create Done
g_lowLevelIO.Init( deviceSettings ) Done
AK::SoundEngine::Init Done
AK::MusicEngine::Init Done
AK::SoundEngine::RegisterGameObj Done
AK::SoundEngine::LoadBank Init Done
AK::SoundEngine::LoadBank SFX Done
AK::SoundEngine::PostEvent AK_INVALID_PLAYING_ID
#

Next error :

./test
START
AK::MemoryMgr::Init Done
AK::StreamMgr::Create Done
g_lowLevelIO.Init( deviceSettings ) Done
AK::SoundEngine::Init Done
AK::MusicEngine::Init Done
AK::SoundEngine::RegisterGameObj Done
AK::SoundEngine::LoadBank Init Done
AK::SoundEngine::LoadBank SFX Done
AK::SoundEngine::LoadBank Ambs Error 100

AK_InvalidBankType = 100, ///< Invalid bank type. The bank type was either supplied through a function call (e.g. LoadBank) or obtained from a bank loaded from memory.

😭

#

that was expectable

#

I need to find the old SDK

#

but it's so old that it's not listed in the software doggokek

#

hummmm, looking again at wwiser.py I see this

TXTP GENERATION
You can generate .txtp files from .bnk that allow vgmstream to (mostly) play audio simulating Wwise. Make sure .wem go to the /txtp/wem folder and open .txtp with a player like foobar2000 or Winamp with the vgmstream plugin installed (or use vgmstream's CLI tools).
drifting perch
#

Ok, so if someone find an old SDK (not just the .h, also the .so files) of wwise, possibly the version 2015.1.6 as I can read here, let me know 😄

#

All public versions are in the Wwise Launcher.
If you need a version that is not in there, reach out to us in the contact formular.
source

I'll take my chance...

ruby haven
#

Yep. Was just reading all that.

drifting perch
#

I've contacted them with Twitter as I don't know where this contact form is doggokek

@audiokinetic Hi I'm working on an old project with v120 soundbanks for which I need a compatible wwise SDK (I think it's 2015.1.6). Could you please help me in getting this SDK ?

#

wait and see now

#

I don't know yet if this sdk has armhf libs... so suspense

#

I don't expect it to have aarch64

#

🤪

drifting perch
drifting perch
drifting perch
# tepid mica https://tenor.com/view/patrick-scheming-plan-gif-10212416

I'm taking the long road as I can't get a wwise SDK for this sound banks yet. So the plan is:

  1. extract from the banks every events / switch that are requested through the GMW extension, saving them as $ID.wav (or ogg whatever)
  2. pack them as audiogroup or external files I dunno yet
  3. update the code in data.win to play / stop / switch this sound/music instead of using the GMW calls
tepid mica
#

Yeah that's how i imagined it would work. Maybe this can be an example

#

Nice work btw, this ones quite the challenge

drifting perch
#

~ 3000 lines 😄

tepid mica
#

Yeah..PsyDuck

drifting perch
#

pizza tower doesn't use wwise , am I right ?

#

it's fmod and that's it

tepid mica
#

Yeah its fmod

#

I assume its kinda similar adding new audio events

drifting perch
#

yes it's similar

hexed pumice
#

You guys are wizards! 😄

drifting perch
#

Progress report: I can extract about 90% of the sounds. So, the only extractions that fail are some music. I think that the recipe to rebuild them is too big/complex for the tool I have found (vgmstream-cli). Indeed some TXTP files (recipe) that another tool (wwiser.py) generates are bigger than average, like 100+ kB where the average is 0.1-20 kB.

I think I will first try to see if I can get the SFX sounds working, then I'll see what I can do for the music. The thing is that wwise provides to the game a dynamic music that is not just a soundtrack played in loop but something more complex. So until I can get this wwise SDK working I'm affraid that the best I will be able to do is get a music soundtrack played in loop.

While I come back with something real, here is some log from my work. So far, 265 sounds extracted, which represents about 500 MB of wav. When you know that the sound bank is just 13 MB (made of ogg sound samples) you see the power and complexity of wwise 😄

drifting perch
#

Got the Doomguy_Jump sound working as a PoC

tepid mica
#

bwoah no way

drifting perch
# tepid mica bwoah no way

I did the hack manually in the code just for the jump sound to validate my strategy before I script the all thing for SFX

#

For music I’ll have to code a function that handle the loops

#

There is a sort of switch of the music

#

Also I will still have to fix / debug vgmstream tool for the music titles that can’t be extracted

#

But happy of the progress ☺️

tepid mica
#

Sounds like a huge project ^^

#

On the plus side, ill be done with the patcher by thendoggokek

#

Getting there with the pixelart

tepid mica
#

Yeah program kinda like progressor, but with graphics

drifting perch
#

Oooh

#

Cooool !

tepid mica
#

run it with a patchfile (hidden bash) and it shows whats going on with some nice screen

drifting perch
#

Can you tease ?

#

👀

tepid mica
#

Sure😄

#

I took "inspiration" for a lot of this :p

drifting perch
# tepid mica

This is crazy !!! I’ll add useless patch in every coming ports

tepid mica
#

Love that

drifting perch
tepid mica
#

hehe

trail python
#

Looks great, PATCH letters could be bolded a bit

drifting perch
#

In the painting

tepid mica
#

msot of the crew is in there

tepid mica
#

Want to animate stuff too

drifting perch
tepid mica
#

Im in there, just hidden haha

drifting perch
#

Oh yeah

#

Smoolll

tepid mica
#

fraxinus and i are on the retro console

drifting perch
#

On the arcade machine

tepid mica
#

oui

drifting perch
#

It’s really nice pixel art

hexed pumice
#

Great work, Jan. Looking solid. That should be put on the PortMaster Store for sale after it's done. 😄

drifting perch
trail python
#

The moment you start selling the license someone will port Portmaster on the fridge instead of Doom

bleak spade
drifting perch
#

My doom2.droid got bigger 👀

RK3566:~/roms/ports/minidoom2/gamedata # ls -lh
total 129M
-rwxr-xr-x    1 root     root         854 Sep 15 01:12 configs.ini
-rwxr-xr-x    1 root     root      128.3M Sep 15 01:10 game.droid
-rwxr-xr-x    1 root     root        2.9K Sep 15 01:18 slot1.ini
-rwxr-xr-x    1 root     root       27.7K Jan 21  2018 splash.png
#

No music and I think some adjustement needed, hear the pistol (at the end) got a funny SFX doggokek

#

I let you enjoy this teasing with the unwanted reflection of my face in the screen doggokek

#

You can also see that I am better at hacking game than at playing them 👀 (my gamepad config is totally off also)

#

night time here so see ya doomers !

regal imp
#

angry developer face

#

great progress!!

#

well done 🙂

drifting perch
#

Also a lot disturbed with the controls that were crazy

hexed pumice
#

Mine controls are spot on. Did you use the gptk file on my MiniDoom 2?

#

They all mapped correctly

drifting perch
#

@hexed pumice I've installed again the wip port you shared with me:

RK3566:~ # md5sum minidoom2-port.zip
347d62f53af69ec61bc8a527f57f9ef8  minidoom2-port.zip

but I can't jump, neither can I change weapon

#

well, R3 show briefly the menu to change the weapon but that's all

#

ok, gamepad input is better

#

just need to swap a/b an x/y and that will be perfect

lofty pulsar
#

Is MinI Doom Gamemaker gmmes?

#

or something else

drifting perch
#

yes it is

#

Minidoom (1) has already been ported by Zehmaluco

#

Minidoom 2 is wip, port done by Zehmaluco works fine except no sound and no music

#

because it uses an external library called wwise which cannot be loaded by gmloader (it's a dll, win x86 arch anyway)

#

so I'm working on this, I extracted the SFX from the wwise sound bank, I updated the gml code to play this sounds. it works. I just have minor issue like some sounds are incorrect. Also I haven't deal yet with the music because it needs advanced work to better understand how wwise loops the music

drifting perch
#

doggokek there was no export SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig" in the .sh, that's why I wasn't able to swap the buttons

hexed pumice
#

Hopefully it is all good now. MiniDoom 2 is really good.

trail python
drifting perch
#

If you want a preview of the patch here is the alpha version
MD2-sfx-alpha.zip

Just add audiogroup1.dat into minidoom2/gamedata and apply patch_data_sfx.vcdiff with xdelta3 on game.droid

xdelta3 -d -s game.droid patch_data_sfx.vcdiff game_sfx.droid

then mv game.droid game_nosfx.droid and mv game_sfx.droid game.droid

I'll remove at the end of the month the link. I'll script something to build the audiogroup1.dat during the installation

tepid mica
#

Awesome stuff

#

How long will the install take 😉

drifting perch
#

For now I have processed all the audio in the computer only

tepid mica
#

Sounds like a good use of the patching screen😎

drifting perch
tepid mica
#

Ill probably test it out on mago

drifting perch
#

So if some courageous volunteer can test the audio patch and seek for bug that will be great because I haven’t played enough to see all the bugs

drifting perch
drifting perch
#

So it appears that MiniDoom2 works well with gmloadernext @hexed pumice

#

I've switch to it

hexed pumice
#

This might be the halloween PM release of 2024

drifting perch
#

I have to fix the sfx of the pistol and the grenade from what I have seen/heard

#

but I dunno where the hell is this sound in the databank 😄 I have to check the "unused sounds"

drifting perch
#

Ok I have found the bug for the sound mapping ^^

#

UTMT C# script sort the names like I do in my python script to map everything but in C# A < a while in python A > a (for sorting)

#

python:

52:GUI_Pistol
53:GUI_Switch
54:Gauss_Cannon
55:Grenade

this is the result of this

for i,key in enumerate(sorted(sounds.keys())):
  # doing stuff here
#

C#:

52:Gauss_Cannon
53:Grenade
54:GUI_Pistol
55:GUI_Switch

this is the result of this

string[] dirFiles = Directory.GetFiles(importFolder);
Array.Sort(dirFiles);
#

Now it's time to fix >_< this mess

#

Oh I got it

#

it was case insensitive sorted in C#

#

I'll try key=str.casefold

#

in python

#

looks better:

52:Gauss_Cannon
53:Grenade
54:GUI_Pistol
55:GUI_Switch
#

I hate windows 😄

#

I have to adapt to him all the time 😄

#

let's repack the gml file into zat data.win

#

game over, I have fixed the sound mapping (for Grenade at leat) but the Pistol sound played is the expected one for this event. It seems the Pistol sound is badly extracted, as I thought a the beginning. I'll patch the hard way using another sound.

#

GUI_Pistol will do it I guess

#

ok fixed ✅

#

sounds better now 🙂

#

Still have to see how to handle this music now... not an easy task for a non musicien guy doggokek

#

finding pattern in song... uh

#

I'm thinking to contact Calavera Studio to ask them if they would be kind enought to share the wwise workspace of minidoom2 so that I could upgrade the bankset to a compatible version with the newer SDK...

#

Maybe a short video of their game running on a handheld can help

trail python
#

Unrelated to this but thanks for mentioning me on Spookynakki read me.
Even GIMP got the mention!

drifting perch
#

Everyone deserve the credits 🙂 I hope I haven't missed someone 😄

hexed pumice
#

I tried to reach to the studio, but got no answer. Maybe if we have more people trying they might give us a response.

#

I wanted to make MiniDoom read to run.

drifting perch
trail python
hexed pumice
#

Tried both Twitter and Behance. No response.

#

I want that game NOW!

drifting perch
#

I’ll write an email to Felipe

#

Just need some inspiration

hexed pumice
#

No I just did some English,.

drifting perch
hexed pumice
#

No only by dm on Twitter and Behance.

drifting perch
drifting perch
#

Let's prepare some tools for the port installation process ^^

root@ebf47c554692:/devel/vgmstream/build# file cli/vgmstream-cli
cli/vgmstream-cli: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=509e7a07cdccb039994ba3912675d119818d66ee, for GNU/Linux 3.7.0, not stripped
#

I'll benchmark the audio extraction on my handheld

#

sound extraction to wav takes about 30s.

real    0m27.149s
user    0m23.605s
sys    0m2.073s

then ogg encoding takes about 1 min (even the unused level music are processed)

real    0m53.221s
user    0m48.352s
sys    0m2.233s
#

packing ogg into audiogroup1.dat is just a question of seconds 🙂

#

So install process will be about 2 min I guess, considering there is an xdelta patch to apply on the 100MB data.win

drifting perch
#

Long play
https://youtu.be/iO4z3vaM9qk

I'm still a bad player doggokek

This is my work in progress on getting Mini Doom 2 from Calavera Studio running on Anbernic RG40XX H with PortMaster on the Knulli CFW (Linux based).

Mini Doom II is a fan game that pays homage to the Doom franchise by reimagining it as a 2d retro platform.

This amazing fan game was developed with Gamemaker for Windows and Mac and obviously do...

▶ Play video
trail python
#

Are you playing on bluetooth controller?
What os is this?

#

It looks great, did you fix sound remapping problem?

tepid mica
#

Awesome work @drifting perch 🔥

#

Would love a somewhat detailed breakdown of how you did it😄

#

At some point

hexed pumice
#

That's amazing work! Looking forward to play this one again with sound. 😄

drifting perch
#

I have to make a write-up

#

I've sent an email to the main game dev to see if I can get something better for the BGM

drifting perch
#

In the game, running native in Mac or Windows the music loops with the wwise sound system, without fade-in / fade-out, it a continuous stream

#

If I add the music, I can only loop with fade-in/fade-out and not sure atm which track I need to use

#

Also some level music can't be extracted yet because the txtp file is toooooo huge, like tons of lines

#

the process is

  1. [soundbanks] -> txtp files
  2. [soundbanks] + txtp file (for each sound/music) => wav
#

the txtp file is the recipe of the WAV

tepid mica
#

Txtp, never heard of thatTurtleThink

drifting perch
tepid mica
#

So its like a huge metadata file?

drifting perch
#

I use vgmstream-cli to produce the wav from the soundbank and the txtp file

drifting perch
tepid mica
#

/events

drifting perch
#

sometime it's small

tepid mica
#

Interesting stuff, so you use this to figure when its supposed to be played?

drifting perch
drifting perch
tepid mica
#

I see now, object events

drifting perch
#

I have produce a json that maps every events to the txtp files

#

then extracted the wav

#

put the wav in audiogroup.dat

#

and replace all gmwPostEvent by game maker sound play function

tepid mica
#

What a processdoggokek

#

Good stuff man

drifting perch
#

I have scripted with python

tepid mica
#

Dont think id have the knowledge and motivation to this😄

drifting perch
#

I had the curiosity 😄

tepid mica
#

That helps 🙂

drifting perch
#

Next curiosity will be pizza tawer

tepid mica
#

Pizza tower would be huge

#

And a lot of the work was done already by another crazy person

drifting perch
#

What does this game have to be so popular ? XD

tepid mica
#

Pizza tower? Not sure😄

drifting perch
#

Also does it run with gmloader, without the sound yet ?

tepid mica
#

Johnny had it running, but that doesnt mean much to me 😛

#

I think older versions run just fine but i cant say for sure

#

And with next maybe new versions too

drifting perch
# trail python Are you playing on bluetooth controller? What os is this?

Yes I'm using a bluetooth controller with my sdl hack so that we don't see my hand on the video doggokek I'm playing with a 8bitdo zero, not the best but it works 🙂 Sound remapping problem is fixed, the misalignement was that utmt sort without case sensitive for importing the sounds, while in the python script that rewrite the GM code it is case sensisive.

#

The was a strange bug with the Pistol sound, so I replaced it with the GUI Pistol sound

trail python
#

If I remember right gun was menu sound and menu had gun sound?

drifting perch
#

But the extracted Pistol.wav doesn’t sound right

#

So I change it for GUI_Pistol int the code

trail python
#

I see. Nicely done

drifting perch
#

Thx doggokek

#

I’m still learning how to hack the code in utmt. I wanted to add functions that replace the one from wwise library but it failed.

#

It’s not easy to do it because you have to know exact what you are changing in the references (function name, function ref, string ref)

drifting perch
#

Made some progress on gmKtool, adding support to import sound from wwise bank into an audiogroup:

    def _write_to_file_txtp_ogg(self, audo_entry):

        if self.bitrate != 0:
            oggenc_process = Popen(["oggenc","-Q", "-b",f"{self.bitrate}","-o", "-", "-"],stdin=PIPE, stdout=PIPE, stderr=DEVNULL )
        else:
            oggenc_process = Popen(["oggenc","-Q", "-"],stdin=PIPE, stdout=PIPE, stderr=DEVNULL )
        
        Popen(["vgmstream-cli",f"{self.audo[audo_entry]["txtp"]}", "-p"], stdout=oggenc_process.stdin, stderr=DEVNULL )

        oggdata, _ = oggenc_process.communicate()

        self.fileout.write(oggdata)

        return len(oggdata)
#

Also I removed the ugly code that was using Thread to process the audio data with process. I dunno why I have gone with this so complicated way of doing doggokek

#

Oh I know, google search 😅

drifting perch
drifting perch
#

or you just modified this

ruby haven
drifting perch
#

thx 🙂

ruby haven
#

Very welcome😎

drifting perch
#

indeed it works on MiniDoom II, it stretches 😄

#

I'll let the end user handle this patching 😄

#

I've got sufficient hacking to process in this port doggokek

#

Now I need to glue Jan patcher with the whole thing

drifting perch
#

Oye oye ! I have been able to reach the audio software engineer of MiniDoom II ! I have shared more details in the supporter lounge ☺️ So I have a good feeling w’I will be able to get the music working. We still have to find how together 😎

royal bone
#

Hello!

Happy New Year! 🎉 Wishing you all the best for 2025!

Thanks for the update and all the effort you’re putting into this project. Do you have any news on how things are progressing with the music integration? It sounds like things are moving in the right direction!

Looking forward to hearing more when you have the chance.

royal bone
#

Yes I already installed Minidoom2 but unlike Minidoom, music doesn't work, only guns and character sound. I'm using last build of MUOS

hexed pumice
#

Mini Doom 2 uses a different file format, that's fairly uncommon. So we have to work with the developers to get it on the port. Still in development, but as soon as it is out will update.

drifting perch
# royal bone Yes I already installed Minidoom2 but unlike Minidoom, music doesn't work, only ...

I have made this port and explained this in the readme

The music is not yet supported in the port, an update will come later when we'll have meet all the requirements. While you can listen to this awesome BGM in this Youtube video from the music composer Manuel Soruco.

I don't want to bother too much Manuel because he was pretty busy in his life when we start talking about the options we have. I'll take the New Year as an excuse to ping him 🙂

#

You can put this in backgound while you are playing as a workaround https://www.youtube.com/watch?v=yjQHXCoh2lY&ab_channel=ManuelSoruco 🙂

This is the soundtrack of miniDoom 2 edited with some footage of myself playing through the game. It was the first time I played the complete game since the release.

You can download miniDoom 2 for free on http://calavera.studio and if you enjoyed the music, you can buy the tracks on:
iTunes: https://geo.itunes.apple.com/us/album/riffs-from-mar...

▶ Play video