#Render96 (sm64ex fork)

1 messages ยท Page 2 of 1

upbeat garnet
#

This issue could be from the cfw (ArkOs Community 05242024). I will try it on another sd with standard ArkOs.

mental slate
oblique pulsar
#

Ill be able to retest all of the cfw's once im home๐Ÿ˜„

mental slate
#

enjoy the weather ๐Ÿ˜„

#

31 C here in QC ๐Ÿ˜„

oblique pulsar
#

Knulli and trimui are low priority (would be nice to get them working). Muos is a bit of a bummer and i dont think im smart enough to fix it. And that community arkos, idk kotzebuedog is testing on arkos so that seems like an issue on their end. I can give that a try as well though.

oblique pulsar
mental slate
#

@last ridge for you, if you confirmed the fix I'll include this in the next version ๐Ÿ™‚ attachment removed

mental slate
oblique pulsar
#

I sent the testing requirements earlier, theyre probably a bit buried now :p

#

Technically only muos is left

#

But that might just be an issue with muos' audio driver, im just not knowledgeable enough to find out๐Ÿ˜„

mental slate
#

I think we haven't verified all the testing requirement after the switch to GLES

oblique pulsar
#

Ah okay. I can do pretty everything except rgb30 resolution if necessary.

last ridge
last ridge
#

nice job making a fix that quick ๐Ÿซก

mental slate
#

it's becoming more than porting, it's refactoring lol

oblique pulsar
oblique pulsar
#

Or qc quebec?TurtleThink

mental slate
oblique pulsar
#

Wow didnt know it could get so hot there

mental slate
#

it's like -35 few days in cold winters (not every year) to +35 few days in summer (it's starting to be regular)

#

at leat I get real winter and real summer, while in Britanny in France I had summer and rainy fall/winter (no interest except for the salads lol)

#

however summer starts later and ends earlier here but it's fine

oblique pulsar
#

In the netherlands the range is like -5 to 20doggokek

#

Usually just 10c with rain

mental slate
oblique pulsar
#

Im from the northern part

#

In the summer it can get a bit higher, but its pretty rare

mental slate
oblique pulsar
#

Yeah that's true, cant really get any worse๐Ÿ˜„

mental slate
#

TL;DR: if you want to give a try:

  1. download testing-v3.5
  2. unzip it in roms/ports/
  3. put your SM64 rom in roms/ports/render96ex with the name baserom.us.z64
  4. run render96ex.sh

Changes in v3.5:

  • replace readdir by scandir with alpha sorting in render96ex code to avoid the language index dancing seen in knulli by Zak
  • note for knulli users: bind the right stick to keyboard controls in knulli then map that to c-stick inputs in render96ex
pCloud

Keep, share and access your files whenever you need from wherever you are. Create a free pCloud account and make your life easier.

upbeat garnet
#

I tried v3.4 on a fresh install of standard ArkOs on my r36s and I still have the same problem.

mental slate
upbeat garnet
#

Yes, that's right.

mental slate
#

@upbeat garnet are you inflating the zip archive into your sd card with Windows ? Also can you please remind me what is happening if you try to launch it fron the port list ?

upbeat garnet
#

I use 7-zip to unzip in windows.

#

The game starts and shows the mario render96 logo, you hear 'It's me Mario'. Then, it closes and returns to the ports list.

oblique pulsar
#

Sounds like what happens on muos

mental slate
#

and I remember that in the log I saw DynOS_Music_GetDevice: Could not open music device.

#

I'll wait for another ArkOS test and I'll see with Robbert if I can debug this. I already know from where in the code this message comes. ( data/dynos_audio.c line 141).Maybe launching with file manage allows it to use another audio plugin.

#

Oh I may have an idea, I see also Failed to create secure directory (/run/user/1002//pulse): No such file or directory I wonder if file manager launches it with another user. That's a possibility

last ridge
#

Iโ€™ll also be able to test rocknix and arkos this weekend on an rg503 if necessary

mental slate
mental slate
#

@low jungle I'm starting to look in depth at the hardcoded assets in sm64ex-coop and I've tried to build it again. Do you remember getting this error while building sm64ex-coop ?

Compiling: actors/zcustom0.c -> build/us_pc/actors/zcustom0.o
In file included from actors/zcustom0.c:20:
actors/wario_cap/model.inc.c:31:10: fatal error: actors/wario_cap/custom_wario_cap_logo.rgba16.inc.c: No such file or directory
   31 | #include "actors/wario_cap/custom_wario_cap_logo.rgba16.inc.c"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:1792: build/us_pc/actors/zcustom0.o] Error 1

I don't remember how I did fix it the first time (I think in a very crappy way) but today I've been able to resume and finish the build (make EXTERNAL_DATA=1 USE_GLES=1) after doing this
echo -n 'actors/wario_cap/custom_wario_cap_logo.rgba16' > build/us_pc/actors/wario_cap/custom_wario_cap_logo.rgba16 && hexdump -v -e '1/1 "0x%X,"' build/us_pc/actors/wario_cap/custom_wario_cap_logo.rgba16 > build/us_pc/actors/wario_cap/custom_wario_cap_logo.rgba16.inc.c

I'll try to fix this properly in the Makefile 'cause he is the one who should perform this.

How did it go on your side ?

low jungle
#

The repo that adds Android and other Unix support and GLES and such

mental slate
#

it's strange I am using exactly this one

#

maybe I'll try to git clone it again... XD

low jungle
#

I built successfully

#

First try

#

The other one failed

#

But the devs of the official repo have interesting and stupid reasons for not supporting other Unix platforms and GLES

#

Where are you on compiling on?

#

I did it on a Radxa Zero 3E with the Debian Xfce image but disabling the DE

#

Then added the same executable I use for sm64ex and it just works without any compat libs

#

No GL4ES at all

mental slate
# low jungle Where are you on compiling on?

docker image build from the Dockerfile that comes with but using ubuntu 20.04 instead of 22.04 ๐Ÿ™‚ I get a build but I needed two extra command lines to get the missing custom_wario_cap_logo.rgba16.inc.c

#
Compiling: src/goddard/dynlists/anim_group_1.c -> build/us_pc/src/goddard/dynlists/anim_group_1.o
Linking executable: build/us_pc/sm64ex-coop.us.f3dex2e
Making basepack list.
Packing basepack zip file.
low jungle
#

I built on bare metal

mental slate
low jungle
mental slate
low jungle
#

Should I build again and show you a video?

mental slate
#

I wonder if the make distclean doesn't f*-up the repo

low jungle
#

Hmmmm

mental slate
#

however git shows no change

#

trying a 2nd build right now after a distclean

#

let's see ^^

#

no it just passed the critical step

low jungle
mental slate
#

no no, the build worked

#

I've just replicated the change I've made on Render96ex in sm64ex-coop to load demo data from external files. I still need to check if other assets are hardcoded but I am making progress ๐Ÿ™‚

low jungle
#

i still need to try the current render96ex version on knulli Allwinner

#

trimui smart poop

#

its good but poop jokes funny

low jungle
#

meow pleading sankyou

mental slate
#

I forgot to mention it in the commit but it also fixes the issue when using the EXTERNAL_DATA=1 for the build (see [here](#1248351720464191590 message) for the story).

#

Also I can say that with this patch and using EXTERNAL_DATA=1 no other external data from the rom is hardcoded in the generated binary. I've checked every line in the build log ๐Ÿคช

mental slate
#

funny fact about the sm64ex-coop build:
docker run --rm -v ${PWD}:/sm64 sm64excoop-builder:20.04-arm64 make EXTERNAL_DATA=1 USE_GLES=1 fails with actors/wario_cap/model.inc.c:31:10: fatal error: actors/wario_cap/custom_wario_cap_logo.rgba16.inc.c: No such file or directory but docker run --rm -v ${PWD}:/sm64 sm64excoop-builder:20.04-arm64 make EXTERNAL_DATA=1 USE_GLES=1 -j8 works ...

upbeat garnet
#

Hi, I have found that it can also run correctly if I place render96ex.sh in the tools folder. Then, I can add it to favorites for a faster launch.

mental slate
upbeat garnet
#

ArkOs, but on community it should be the same.

oblique pulsar
#

Tests:
R36S/Arkos/โŒ
R36S/AmberElec/โœ…
X55/Rocknix/โœ…
Plus/muOS/โŒ

Log:
All the installs went perfectly. Both on muOS and Arkos I get the same audio crash. Happens after "Its a me Mario"
FATAL ERROR: DynOS_Music_GetDevice: Could not open music device.

mental slate
#

Hello Jan! Thank you for the tests ๐Ÿ™‚

oblique pulsar
#

Youre welcome. I think the installer is good like this ๐Ÿ™‚

#

Idk why its so much quicker on rocknix

ocean yarrow
#

Less haunted

oblique pulsar
#

Like 30 seconds compared to 3 minutesdoggokek

mental slate
#

However rocknix takes longer to boot ๐Ÿ˜‰

oblique pulsar
#

Yeah on amber it took 2.5 minutes on a rk3326

#

Thats for suredoggokek

mental slate
oblique pulsar
#

Yup

ocean yarrow
#

Is it the same device with different times?

oblique pulsar
#

No x55 vs r36

#

But still

#

Huge difference

ocean yarrow
#

Arenโ€™t they different cpus?

mental slate
#

the sdcard ?

oblique pulsar
#

Yes rk3566 and rk3326

#

Ahhh

#

Youre onto something

mental slate
ocean yarrow
#

Big difference in those in pure cpu performance

oblique pulsar
#

I use a 16gb chinese special for amber

#

Sorry not sorry๐Ÿ˜„

ocean yarrow
oblique pulsar
#

Because i dont use it

#

Neither do i use arkos

#

Because r36

mental slate
#

same for me, arkos on chinese sd card however it's fast

oblique pulsar
#

Yeah arkos is an outlier with boot times idk how

ocean yarrow
#

I just buy some sdcards.

mental slate
#

me too

oblique pulsar
#

Oh i bought 12 sd cards๐Ÿ˜„

mental slate
#

but I used them for other purpose like the Wii U, my raspberry server ๐Ÿ˜„

oblique pulsar
#

But this was before that and i never used amber untill now again

#

But anyway its a one time install so its fine. About the audio issue, i wonder why its working for you (on arkos)TurtleThink

#

Also sm64 did work on muos so maybe theres some regression in render96?

#

Or upgrade that doesnt work*

ocean yarrow
#

I have 21 sdcards now. :/

#

Ignoring the ones that came with devices.

mental slate
#

I'm gonna build a "debug" version of render96 that output some information during the audio setup

oblique pulsar
#

Sounds good, let me know when i need to test it again๐Ÿ˜„

mental slate
oblique pulsar
#

I have them in one of those flippy thingies

mental slate
#

also sometime I discover "lost" micro SD card lol

ocean yarrow
#

I have them labeled with letters. I have a document that says what they are for.

mental slate
oblique pulsar
#

I recently found my 10 year old 512mb sd card from my nintendo dsdoggokek

ocean yarrow
#

Haha. I have a 64mb one from my original digital camera. The one I took with me to the USA in 2004. ๐Ÿ˜„

oblique pulsar
#

Crazy how fast storage has gotten better

#

64mb is 10 pictures now haha

mental slate
#

yes, my first HD was 512 Mo

ocean yarrow
#

My friends boss has a 10mb hdd from the 70s

#

It was the size of a coffee table

oblique pulsar
#

Wow๐Ÿ˜„

mental slate
#

I'm sad I didn't keep my floppy disks, to show to my kids ๐Ÿ˜„

ocean yarrow
#

As someone with kids. They probably wouldnโ€™t care. ๐Ÿ˜„

#

โ€œCoolโ€ with absolute zero interest in it.

oblique pulsar
#

I would

ocean yarrow
#

Arenโ€™t you about the age of my kids?

mental slate
#

My little boy kind of care

ocean yarrow
mental slate
ocean yarrow
#

40 in a few weeks. ๐Ÿ˜„

mental slate
#

oh, I'm 40 too

ocean yarrow
#

My eldest is 24. doggokek

oblique pulsar
#

Im younger than your eldest๐Ÿ˜…

#

So yes

ocean yarrow
#

lol

oblique pulsar
#

Damn you were young

ocean yarrow
#

I have 24, 21, 18, 10

#

The three eldest are step children. My wife is older than me. ๐Ÿ˜„

mental slate
ocean yarrow
#

But I raised them.

oblique pulsar
#

That makes more sense๐Ÿ˜„

#

Awesome dude

ocean yarrow
#

So I claim them as my children. ๐Ÿ˜„

#

Except when they piss me off. ๐Ÿ˜‚

mental slate
ocean yarrow
#

The 10 yr old is โ€œmineโ€, I try to claim he isnโ€™t mine sometimes too. doggokek

mental slate
ocean yarrow
#

Yeah my wife tries to disown me too sometimes.

zenith leaf
#

Tell me, what am I doing wrong? At the stage of building Docker images.
I am using WSL Ubuntu 20.04 and 22.04

oblique pulsar
#

No need to do that anymore

#

Just download the 3.5 package

#

And place your baserom in the portfolder

mental slate
#

it's funny how this chan is more than 50% of the time off-topic ๐Ÿ˜„

#

That doesn't help the poor volunteers that want to test this port like Dimma, sorry friend ๐Ÿ˜‰

mental slate
# oblique pulsar Sounds good, let me know when i need to test it again๐Ÿ˜„

Here is a first attempt to get some information about the SDL audio setup. With ArkOS on my RG353VS I got this info:

detectedMusicFreq=22050, detectedMusicChan=2, countAudioDevices=2
Audiodevice[0]=rockchip,rk817-codec, fe410000.i2s-rk817-hifi rk817-hifi-0
Audiodevice[1]=rockchip,hdmi, fe400000.i2s-i2s-hifi i2s-hifi-0

Just to let you know, I added this in DynOS_Music_GetDevice():

    // DEBUG
    const int countAudioDevices = SDL_GetNumAudioDevices(0);
    printf("detectedMusicFreq=%d, detectedMusicChan=%d, countAudioDevices=%d\n",detectedMusicFreq,detectedMusicChan,countAudioDevices);
    for (int index=0; index < countAudioDevices; index++){
        printf("Audiodevice[%i]=%s\n", index, SDL_GetAudioDeviceName(index,0));
    }
oblique pulsar
#

Aight. Testing later ๐Ÿ™‚

zenith leaf
mental slate
mental slate
# zenith leaf Tell me, what am I doing wrong? At the stage of building Docker images. I am us...

Also it seems that you are not using my Dockerfile (package list order differs and TZ env seems to be missing). Here is mine:

FROM ubuntu:20.04 as build

# avoid prompt for user input when installing tzdata
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC

RUN TZ=Etc/UTC apt-get update && \
    apt-get install -y \
        bsdmainutils \
        build-essential \
        git \
        libglew-dev \
        libsdl2-dev \
        python3

RUN mkdir /render96
WORKDIR /render96
ENV PATH="/render96/tools:${PATH}"

CMD echo 'Build binary:     docker run --rm -v ${PWD}:/render96 render96 make NOEXTRACT=1 -j8\n' \
         'Extract assets:   run --rm -v ${PWD}:/render96 render96 make res\n'\
         'See https://github.com/Render96/Render96ex/wiki for more information'
mental slate
zenith leaf
mental slate
zenith leaf
#

what flags are needed? make -4j

mental slate
mental slate
#

-j4 just means 'launch 4 build task at the same time'

zenith leaf
#

Thanks!

mental slate
#

make res will generate the base.zip texts and demos in build/us_pc/res

#

make NOEXTRACT=1 USE_GLES=1 -j4 will generate the sm64.us.f3dex2e in build/us_pc

#

il you want an opengl build remove the USE_GLES flag but for handheld that's not what you want

#

If it's getting too complicated to get everything working (aarch64, russian patch, gles, etc) you can first try to build an x86_64 version from the orignal render96ex sources (https://github.com/Render96/Render96ex) with no patch, then try to get the russian patch working

mental slate
#

otherwise you're gonna build an old version that hasn't dynos (dynamic pack load)

zenith leaf
#

Wow! Thanks for the details

mental slate
#

Also you can first try to get the patch working on the sources it was designed for: sm64ex. I didn't get render96ex to build on my first try. I've first build sm64-port (you can ignore it, very old) then sm64ex, then sm64ex-coop and finaly render96ex ๐Ÿ™‚

low jungle
#

testing 3.5 is the newest right

oblique pulsar
#

yup

low jungle
#

thank you jan

#

you are fast

#

;)

low jungle
#

i only need baserom.us.z64 in the root folder correct

#

yes

#

@mental slate optional is spelled "optionnal" in many places

#

It froze

#

idk if thats intentional or not

#

i think i broke it

oblique pulsar
#

Its installed

low jungle
#

but its frozen

#

my handheld doesnt respond

#

what do

oblique pulsar
#

I doubt it actually froze

#

Press B/A then dpad-down, then again B/A

#

Otherwise start +select

#

If that doesnt work hold the power button๐Ÿ˜„

low jungle
#

Hmph

#

the game doesnt work let me debug with ssh

oblique pulsar
#

I dont know whats wrong, it just kills render96

#

Is your sd card ext4?

mental slate
mental slate
last ridge
#

My logs were looking similar on knulli if my device ran out of memory, sometimes it would have the underrun error and sometimes it would just be killed like that if all the resource packs were installed

low jungle
oblique pulsar
#

For muOS

mental slate
#

That is what I suspected

oblique pulsar
#

Doesnt really tell you much does it?๐Ÿ˜„

mental slate
#

On the contrary I see where the issue is

oblique pulsar
#

Really?

mental slate
#

Need to know how to fix it nowdoggokek

mental slate
oblique pulsar
#

Okay๐Ÿ˜„

#

Wont be easy troubleshooting when it works for you already

mental slate
#

So that I can run all the CFW I didnโ€™t need before doggokek

last ridge
#

I impulse bought my 35xx h for $33

#

I see it go for $40 on aliexpress sometimes then thereโ€™s coupons that bring it down more

#

Also this might be a dumb question but can the game use mp3 instead of wav so that it doesnโ€™t use as much memory bc the mp3 sound files are much smaller

mental slate
#

Any option requires deep modification

#

Iโ€™ll look for mp3 or vorbis when I get a working port

mental slate
oblique pulsar
#

Sure thing

mental slate
#

the zip also include the .cpp if you wanna see what I'm doing ๐Ÿ˜„

oblique pulsar
#

Sweet, although i doubt i could understand much of c++ code๐Ÿ˜„

#

Ill chatgpt it :p

#

What do i do exactly? I have to build it? @mental slate

#

Running sdltest straight gives no output

mental slate
#

just run ./sdltest ๐Ÿ™‚

oblique pulsar
#

yeah okay i get no output at all๐Ÿ˜…

#
[~]#

mental slate
oblique pulsar
#

Yup

mental slate
#

ok, I need to check why it it not opening it then ๐Ÿ˜„

#

will build another test program ^^

oblique pulsar
oblique pulsar
mental slate
oblique pulsar
#

Okay were getting something now

#
Could not open test.wav: Couldn't open test.wav
[~]#

#

๐Ÿ˜„

#

test.wav is right next to sdltest

#

Oh lol

#

I have to be cd'd into the sdl folder

#
[~]# cd "/SDL_LoadWAV_test/"
[/SDL_LoadWAV_test]# ./sdltest
test.wav loaded
detected frequency:24000
detected channels:2
[/SDL_LoadWAV_test]#

mental slate
#

yes please sir

#

ohh

#

better ๐Ÿ™‚

mental slate
#

thank you for testing ๐Ÿ™‚

oblique pulsar
#

Is it useful?

mental slate
#

yes ๐Ÿ™‚ I just wanted to be sure the wav format dection works

mental slate
oblique pulsar
#

Sure thing

mental slate
#

no need to hurry ๐Ÿ˜‰

oblique pulsar
#

Eh ive got my plus on and connected to ssh๐Ÿ˜„

#

One moment

mental slate
#

I just need the log for ArkOS on R36s

oblique pulsar
#

Oh i thought muos

mental slate
#

oh

oblique pulsar
#

Arkos sounds like an issue on my end

#

It works for you

mental slate
#

well, just test where it fails ๐Ÿ™‚ I'll try to understand what is the issue

#

maybe the issue has no solution ๐Ÿ˜„ we'll see

oblique pulsar
#

Maybe๐Ÿ˜„

#

For arkos theres this config file that gets corrupted or something while updating ota

#

Might be the issue for me

#

Because some other ports have issues

mental slate
oblique pulsar
#
loaded 5 controller mappings from 'db/gamecontrollerdb.txt'
precaching data
unknown texture format: `gfx/textures/special/hud_ue_uppercase`, skipping
unknown texture format: `gfx/levels/ending/cake`, skipping
unknown texture format: `gfx/textures/special/hud_ue_uppercase`, skipping
unknown texture format: `gfx/levels/ending/cake`, skipping
controller Deeplay-keys has haptics support, rumble enabled
detectedMusicFreq=0, detectedMusicChan=0, countAudioDevices=2
Audiodevice[0]=audiocodec,
Audiodevice[1]=ahubhdmi,
FATAL ERROR:
DynOS_Music_GetDevice: Could not open music device. (ALSA: Couldn't open audio d                                             evice: Device or resource busy)
[~]# /mnt/mmc/ROMS/Ports/render96ex.sh: line 134: systemctl: command not found
[~]#

For muOS.

#

This alsa error only pops up sometimes, it doesnt always fyi

#

Sometimes its just this: DynOS_Music_GetDevice: Could not open music device.

mental slate
#

alsa can't be used by multiple process at the same time, it needs an abstration layer I think

oblique pulsar
#

Can i kill alsa manually?

#

Just to see๐Ÿ˜„

mental slate
#

lol

#

pulseaudio is a way to have multiple stream I know

#

does muos have pulseaudio ?

oblique pulsar
#

[~]# ls /usr/bin/pulseaudio
ls: /usr/bin/pulseaudio: No such file or directory
[~]#
Dont think so

#

Oh it does

#

[~]# ls /usr/lib/libpulse.so.0
/usr/lib/libpulse.so.0
[~]#

mental slate
#

great

#

it seems muos also has pipewire

oblique pulsar
#

Yeah thats what confused me

#

i swear they said they didnt

#

No, it should work hdmi automatically when connected, we probably need to set it in the retroarch.cfg. another problem we have is we are just using alsa, no pulse or pipewire, so our audio configurations are a little finicky lol

#

From the muos server

#

Maybe dummy libs for now?

mental slate
#

we can try export SDL_AUDIODRIVER="pulseaudio"

#

if you wanna try

oblique pulsar
#

Just add it to the bash right?

#

oh nvm๐Ÿ˜„

mental slate
#

I think this will be our last test for today ๐Ÿ™‚

oblique pulsar
#

Interesting

#

Demo data loaded
Loading File: ./res/texts/AM_us.dSDL init error: Audio target 'pulseaudio' not available

#

Hard crash now after loading textures

mental slate
#

๐Ÿ˜„

#

so no pulseaudio as they say ๐Ÿ™‚

oblique pulsar
#

yup haha

mental slate
#

nvm it's not what we need

#

well my friend, thank you for the tests

oblique pulsar
#

Always ๐Ÿ™‚

mental slate
#

we'll continue later the journey

oblique pulsar
#

You really picked a hard one to start withdoggokek

mental slate
#

have a great day

oblique pulsar
#

Hope youre still enjoying it somewhat haha

mental slate
mental slate
#

btw you can remove the export SDL_AUDIODRIVER="pulseaudio" from your .sh now

#

just before I leave, another debug build for you ๐Ÿ˜‰
It outputs this on ArkOS for me

detectedMusicFreq=22050, detectedMusicChan=2, countAudioDevices=2
Audiodevice[0]=rockchip,rk817-codec, fe410000.i2s-rk817-hifi rk817-hifi-0
Audiodevice[1]=rockchip,hdmi, fe400000.i2s-i2s-hifi i2s-hifi-0
DynOS_Music_GetDevice: music device opened
DynOS_Jingle_GetDevice: jingle device opened
DynOS_Sound_GetDevice: sound device opened
#

you can test another day ๐Ÿ˜‰

oblique pulsar
#
controller Deeplay-keys has haptics support, rumble enabled
detectedMusicFreq=0, detectedMusicChan=0, countAudioDevices=2
Audiodevice[0]=audiocodec,
Audiodevice[1]=ahubhdmi,
FATAL ERROR:
DynOS_Music_GetDevice: Could not open music device. (ALSA: Couldn't open audio device: Device or resource busy)
/mnt/mmc/ROMS/Ports/render96ex.sh: line 134: systemctl: command not found
[~]#
mental slate
#

@oblique pulsar can you please get me the /usr/share/alsa/alsa.conf on muos ? I'd like to understand the config ๐Ÿ™‚

oblique pulsar
#

Sure thing ill send the whole thing. Theres some funky stuff going on with their setup

#

Theres tons of configs even for libraries they apparently dont use๐Ÿ˜„

mental slate
#

You testing muos on rg35xx isn't it ?

oblique pulsar
oblique pulsar
#

The plus

mental slate
#

3142hmmmreverse that's a lot of file for audio

#

isn't there any simple alsa.conf somewhere ?

oblique pulsar
#

It was in there๐Ÿ˜„

mental slate
#

do you have any /etc/asound.conf present in the system ?

#

or ~/.asoundrc

oblique pulsar
#

[~]# find / -name asound.conf
find: /proc/2344: No such file or directory
[~]# find / -name .asoundrc
Dont think so

#

Wait

mental slate
#

ok thx !

oblique pulsar
#

Im going to bed soon sorry๐Ÿ˜„

#

Feel free to ask for stuff ill send it tomorrow

mental slate
#

Good night ! And thx again for the file quest ๐Ÿ˜„

mental slate
#

you can also check if software mixing is enable by running this program (can be run on ArkOS and muOS if you want). I get this result on my ArkOS:

ark@rg353v:~$ ./sdltest
DynOS_Sound_GetDevice: sound device opened with id 2
DynOS_Sound_GetDevice: sound device opened with id 3
oblique pulsar
#
[~]# "/SDL_OpenAudioDevice_test/sdltest"
DynOS_Sound_GetDevice: sound device opened with id 2
DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Device o                                      [~]# "/SDL_OpenAudioDevice_test/sdltest"
DynOS_Sound_GetDevice: sound device opened with id 2
[~]# "/SDL_OpenAudioDevice_test/sdltest"
DynOS_Sound_GetDevice: sound device opened with id 2
DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Device or resource busy)[~]# cd "/SDL_OpenAudioDevice_test/"
mental slate
#

This is on muOS or ArkOS?

oblique pulsar
#

yeah seems like it

#

Muos

mental slate
#

Can you try to add a $HOME/.asoundrc with this content and try again?

# anbernic-audio alsa config
# dmix + softvol

pcm.!default {
        type            plug
        slave.pcm       "softvol"
}

ctl.!default {
        type            hw
        card            0
}

pcm.ddmix {
        ipc_key         1024
        type            dmix
        slave {
                pcm         "hw:0,0"
                period_time 0
                period_size 1024
                buffer_size 4096
                rate 44100
        }
}

pcm.softvol {
        type            softvol
        slave.pcm {
        type asym
        playback.pcm {
            type route
            slave.pcm "ddmix"
            ttable.0.0 0.96
            ttable.0.1 0.80
            ttable.1.0 0.80
            ttable.1.1 0.96
        }
        capture.pcm "hw:0"
    }
        control {
                name        "Master"
                card        0
        }
}
#

Then you can remove the file

oblique pulsar
#

Like this?

mental slate
#

This is supposed to enable dmix (software mixing) which allows multiple audio device uses

mental slate
oblique pulsar
#

okay haha

#

Theres nothing under muos folder but ill add this

mental slate
#

it's fine

#

you connect with ssh with the user muos?

oblique pulsar
#

No root

fossil pendant
#

muOS doesn't really have a user other than root afaik, the muos user is just used for SFTPgo server

#

Like it's not an actual linux user I don't think

mental slate
#

oh so it should be placed in /root

#

sorry

oblique pulsar
#

Okay that actually changed something:

ALSA lib pcm_direct.c:2188:(_snd_pcm_direct_new) unable to create IPC semaphore
ALSA lib pcm_direct.c:2188:(_snd_pcm_direct_new) unable to create IPC semaphore
DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Function not implemented)DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Function not implemented)[/SDL_OpenAudioDevice_test]#
mental slate
#

ok that is worst ๐Ÿ˜„

oblique pulsar
mental slate
oblique pulsar
#

Fair enough, could you eli5 to me whats broken with the current driver?

mental slate
#

the current alsa setup in muOS uses directly the audio hardware device and sadly the audio device doesn't implement mixing (multiple stream at the same time). A software mixing can be enabled in alsa (dmix) as a workaround but in muOS I have no ideaif this is possible (it requires alsa stuffs but I don't remember what)

#

I think pipewire will solve this

fossil pendant
#

pipewire is better anyway

oblique pulsar
#

Lets wait on that

mental slate
#

yep

oblique pulsar
#

Soon we can exclude certain cfw's as well

mental slate
#

@oblique pulsar you also have arkos on an R36S ?

oblique pulsar
#

Yeah but i have no wifi for it. I hate the thing

mental slate
#

๐Ÿ˜ฆ

#

ok so it's hard to run test programs ๐Ÿ˜„

#

need to setup a .sheach time

#

Thank you Jan for the additionnal tests

oblique pulsar
#

Thank you for trying to fix this for muos๐Ÿ˜„

mental slate
#

I'll try to resume later the limitations on muOS and ArkOS for certain handheld

mental slate
#

with a bit of patience ๐Ÿ˜„

oblique pulsar
#

Id love to see you do it, but testing without a device is insane

mental slate
#

I was looking at RG35XX but I don't need it so...

oblique pulsar
#

Time to wait for a sale :p

#

I got mine for 40 euros

mental slate
#

well have a good evening !

#

got to go

oblique pulsar
#

You too๐Ÿ‘‹

last ridge
#

Tested v3.5 on an RG503 running latest version of rocknix, smooth out of the box w/ fresh install

#

device is 1gb of memory and widescreen as well, i didnt get any of the running out of memory issues i was getting on knulli so rocknix is just better ig

mental slate
#

Thanks @last ridge !

last ridge
#

np, can do the arkos test tomorrow night probably

mental slate
#

I don't have a device that can run muOS but after digging in the muOS disk image (RG35XX OG) I see that it is using the tinyalsa to interface with ALSA in the Linux kernel (correct me if I am wrong).

root@bc1b38fe6326:/muos# ls -1 /mnt/part2/lib/*alsa*
/mnt/part2/lib/libtinyalsa.so

After googling a bit I have found this post where I can read that tinyalsa uses the ALSA device directly and exclusively (advantage is mainly low-latency). I don't see in tinyalsa anything about software mixing (like dmix in legacy alsa). This means that only one audio stream at a time can be sent to the audio device, except if the audio device support hardware mixing (seems no to be the case on RG35xx). In conclusion the current version of muOS can only run Render96ex without the audio dynos pack because this audio pack requires 3 additional audio streams (music, jingle, sfx) that are setup along the main audio stream herited from sm64ex project. I will add a warning about this limitation on muOS in the message that popup during the installation process. If muOS updates its sound system in the future this issue may disappear. A workaround would need to implement software mixing (SDL3 offers this but it is not supported in Portmaster) in Render96ex but I'm really not planning to do ๐Ÿ˜…

EDIT: see below but muOS isn't using libtinyalsa (but supports it). However it's using plain old alsa without dmix which is the reason of this sound issue

zenith mirage
mental slate
#

Hi @zenith mirage Thank you for stopping by ๐Ÿ™‚ Indeed I've realized, after posting my previous message, and when I started looking at the 2405.1 refried bean that this one is newer. I also detect the use of libtinyalsa in 2405.1 refried bean. My assumption is that the program running on muOS that use alsa for the sound are using this tinyalsa lib. Am I right ? The issue we seems to have with muOS in the scope of the port of Render96ex is that 4 SDL_OpenAudioDevice are called but only the first is a success and the next ones fail as the device is in use and doesn't support multiple stream mixing. It works on other CFW that have alsa dmix enabled which offer multiple stream mixing (software). It seems not to be the case in muOS and I think it isn't supported. Have you any idea about this ?

zenith mirage
mental slate
#

Any ETA for banana ?๐ŸŒ

zenith mirage
#

There are a number of ports that fail to run from.portmaster currently due to the alsa issue of just the 1 thread unfortunately. Axiom verge is one I know about

zenith mirage
mental slate
#

And enabling dmix through .asoundrc is possible ?

zenith mirage
mental slate
zenith mirage
#

Yeah, I've spent way too much time getting pipewire working lol. But I will definitely get back to you on the alsa issue and see if I can't rig something up

mental slate
#

I think that a /root/.asoundrc correctly setup for dmix, if dmix is available, could solve this alsa issue. However dmix introduces latency

#

I don't feel the latency is dramatic as I haven't noticed it

oblique pulsar
#

If you need any more testing let know. Ive installed 2405.1 now which supposedly has some fixed related to the audio drivers ๐Ÿ™‚

zenith mirage
#

[/mnt/mmc]# ./sdltest
DynOS_Sound_GetDevice: sound device opened with id 2
DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Device or resource busy)[/mnt/mmc]#

#

No dice

mental slate
zenith mirage
mental slate
#

oh ok

zenith mirage
#

I'm gonna be gone for a week, but when I get back I'll start pestering the boss man to add pipewire lol

mental slate
#

Maybe with /root/.asoundrc like this something may happen

pcm.ddmix {
    type dmix
    slave{
      pcm "hw:0,0"
    }
}
pcm.!default {
    type plug
    slave.pcm "ddmix"
}
#

@oblique pulsar wanna try ? ๐Ÿ˜„

#

Also I'm interrested in the result of aplay -L

#

๐Ÿ™‚

oblique pulsar
#

Sure thing, ill give it a shot tomorrow because its getting late here. Do i need to add any configs?

mental slate
#

Thx and good night!

oblique pulsar
#
[/SDL_OpenAudioDevice_test]# "/SDL_OpenAudioDevice_test/sdltest"
DynOS_Sound_GetDevice: sound device opened with id 2
[/SDL_OpenAudioDevice_test]# aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=audiocodec
    audiocodec,
    Default Audio Device
sysdefault:CARD=audiocodec
    audiocodec,
    Default Audio Device
default:CARD=ahubhdmi
    ahubhdmi,
    Default Audio Device
sysdefault:CARD=ahubhdmi
    ahubhdmi,
    Default Audio Device
[/SDL_OpenAudioDevice_test]# "/SDL_OpenAudioDevice_test/sdltest"
ALSA lib pcm_direct.c:2123:(snd1_pcm_direct_parse_open_conf) Unique IPC key is not defined
ALSA lib pcm_direct.c:2123:(snd1_pcm_direct_parse_open_conf) Unique IPC key is not defined
DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Invalid argument)DynOS_Sound_GetDevice: Could not open sound d                                                 [/SDL_OpenAudioDevice_test]# aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=audiocodec
    audiocodec,
    Default Audio Device
sysdefault:CARD=ahubhdmi
    ahubhdmi,
    Default Audio Device
[/SDL_OpenAudioDevice_test]#
```
#

Before and after the root/.asoundrc

mental slate
#

Thx @oblique pulsar can you try again with this /root/.asoundrc pleaze ?

pcm.ddmix {
    type dmix
    ipc_key 1337
    ipc_key_add_uid true
    slave{
      pcm "hw:0,0"
      buffer_size 5440
      period_size 1088
    }
    rate 48000
    channels 2
}
pcm.!default {
    type plug
    slave.pcm "ddmix"
}
oblique pulsar
#
ALSA lib pcm_direct.c:2115:(snd1_pcm_direct_parse_open_conf) Unknown field rate
ALSA lib pcm_direct.c:2115:(snd1_pcm_direct_parse_open_conf) Unknown field rate
DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Invalid argument)DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Invalid argument)[/SDL_OpenAudioDevice_test]#
mental slate
#

Wrong section I used

pcm.ddmix {
    type dmix
    ipc_key 1337
    ipc_key_add_uid true
    slave{
      pcm "hw:0,0"
      buffer_size 5440
      period_size 1088
      rate 48000
      channels 2
    }
}
pcm.!default {
    type plug
    slave.pcm "ddmix"
}
#

at least the error messages from alsa are very clear ๐Ÿ˜„

#

I hope your rg35xx is not going to explode

oblique pulsar
#
ALSA lib pcm_direct.c:2188:(_snd_pcm_direct_new) unable to create IPC semaphore
ALSA lib pcm_direct.c:2188:(_snd_pcm_direct_new) unable to create IPC semaphore
DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Function not implemented)DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Function not implemented)[/SDL_OpenAudioDevice_test]#
[/SDL_OpenAudioDevice_test]# ipcs -l

kernel not configured for message queues

kernel not configured for shared memory

kernel not configured for semaphores
#

I broke sound last time haha

mental slate
#

oops

oblique pulsar
#

Its fine i have nothing on it

#

2 minute flash

mental slate
#

oh good idea

#

the ipcs -l

oblique pulsar
#

chatgpt baby

mental slate
#

I forgot about him

oblique pulsar
#

[/SDL_OpenAudioDevice_test]# "/SDL_OpenAudioDevice_test/sdltest"
DynOS_Sound_GetDevice: sound device opened with id 2
DynOS_Sound_GetDevice: Could not open sound device. (ALSA: Couldn't open audio device: Device or resource busy)[/SDL_OpenAudioDevice_test]#

is this better?

#

(i have no idea what im doing here)

mental slate
#

what does show aplay -L

oblique pulsar
#
[/SDL_OpenAudioDevice_test]#  aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=audiocodec
    audiocodec,
    Default Audio Device
sysdefault:CARD=ahubhdmi
    ahubhdmi,
    Default Audio Device
[/SDL_OpenAudioDevice_test]#```
mental slate
#

this is with the .asoundrc present ?

oblique pulsar
#

I have unbroken my audioTurtleThink

oblique pulsar
#

using dsp

#
    type plug
    slave {
        pcm "hw:0,0"
        rate 48000
        channels 2
    }
}

pcm.!default {
    type plug
    slave.pcm "dsp0"
}
mental slate
#

oh yes but it doesn't enable dmix (software mixing)

oblique pulsar
#

Okay lets ask chatgpt :p

mental slate
#

I looking at "kernel not configured for semaphores"

#

I don"t know it this means that the kernel hasn't been built with this feature, or a module is not loaded or idk

#

does find / -iname "*.ko" 2>/dev/null | grep ipc list something ?

oblique pulsar
#

No it doesnt

mental slate
#

I guess the kernel is build without IPC support

#

chatGPT suggestion:

The error message "kernel not configured for semaphores" typically indicates that the Linux kernel does not have support enabled for System V semaphores. System V semaphores are a type of inter-process communication mechanism in Unix-like operating systems.

To solve this issue, you generally need to do the following:

  1. Check Kernel Configuration: Verify if System V IPC (Inter-Process Communication) support is enabled in your Linux kernel configuration. This support is typically enabled by default in most distributions, but it's possible that it might be disabled in custom or minimal installations.

  2. Recompile Kernel (if necessary): If System V IPC support is not enabled in your current kernel, you may need to recompile your kernel with the appropriate configuration options enabled. This process involves modifying the kernel configuration file (config-* or .config file in the kernel source directory) and enabling the necessary options related to System V IPC.

  3. Load Kernel Module (if applicable): Sometimes, System V IPC functionality can be loaded as a module rather than being compiled directly into the kernel. If this is the case, ensure that the relevant kernel module (ipcs, ipc_sem, etc.) is loaded. You can load a module using modprobe or insmod.

#
  1. Restart and Test: After making any changes to kernel configuration or loading modules, it's often necessary to restart your system for the changes to take effect. Once restarted, try setting up your semaphore again and see if the error persists.

  2. Consult Documentation: If you are using a specific distribution or a custom kernel, consult the documentation or community forums related to that distribution or kernel. They may provide specific instructions or additional details relevant to your setup.

By ensuring that your kernel has the appropriate support for System V semaphores, you should be able to resolve the "kernel not configured for semaphores" error and proceed with your semaphore setup on Linux.

oblique pulsar
#

lol

mental slate
#

๐Ÿคฃ

#

you should have let the message ๐Ÿ˜„

#

it was funny

oblique pulsar
#

too late hahah

#

So it sounds like its a kernel limitation

#

Meaning 2 programs cant acces the driver at once, correct?

mental slate
#
ark@rg353v:~$ ./ipc-test
Semaphore test successful!
oblique pulsar
#

lol

mental slate
#

if you want to close the case ๐Ÿ˜„

#

(i asked chatgpt for the test program)

oblique pulsar
#

Just lost wifi one moment๐Ÿ˜„

#

muos connection refusedfacepalm

#

reboot i guess

mental slate
#

don't forget to remove the /root/.asoundrc

oblique pulsar
#

semget: Function not implemented
[~]#

#

welp

mental slate
#

it means no system v ipc are available

#

no solution to enable dmix on muOS then

oblique pulsar
#

Shame :/

mental slate
oblique pulsar
#

I guess thats the end of the muos journey though๐Ÿ˜„

#

Wait for pipewire

mental slate
#

you could build the ipc module

#

it could be easy for the muOS team

#

they already have the building environment

oblique pulsar
#

Sure, but we need this to work for everyone, so the muos devs need to take action. Assuming this is not a regular config.

mental slate
#

@zenith mirage ==> anyway you can build the ipc module for the kernel used in muOS ? ๐Ÿ˜„

oblique pulsar
#

How does building a cfw even work๐Ÿ˜„

#

Do you need a special env for it

mental slate
#

to build the kernel module I would "just" need the kernel .config that has been used during the build of the present kernel

#

well

#

also when the kernel has been build with the option it stores in /proc/config.gz the conf

#

but in minimal system that's not what we want

zenith mirage
mental slate
#

ok, all options are closed ๐Ÿ˜„

oblique pulsar
#

lol

mental slate
#

thanks @corey for this information

zenith mirage
#

Yeah, until we get on mainline anything kernel related is out of our hands, and we are stuck on 4.9.170 lol

mental slate
#

it's totally understanble ๐Ÿ˜„

#

then I'll stick to my plan to warn muOS user about this limitation during the installation of Render96ex

zenith mirage
#

Yeah, until we get pipewire implemented that's the best course of action I think. I'm super excited for this port! Lol

mental slate
#

this is the warning displayed only when muOS CFW is detected

#

I hope this will limit the number of muOS users asking for help about this issue ๐Ÿ™‚

oblique pulsar
#

was dynos always an option because last time i said no to everything and we got to the issue we have now.

mental slate
#

I'll pack the testing-v3.6 maybe ?

#

what's your suggestion ?

oblique pulsar
#

Ill test it again real quick

mental slate
#

cool

#
  • testing-v3.6
  • fix typo in the installation script (thx ellis!)
  • add a warning message for muOS users about the possible issues with the dynos audio pack.
#

here it is

#

let's finger cross ๐Ÿคž

#

๐Ÿ˜„

oblique pulsar
#

Crap, yeah its doing the same thing again

#

DynOS_Music_GetDevice: Could not open music device.

#

I dont have the audio pack installed

#

Is 3.6 different, functions wise? This is 3.5.

mental slate
#

Itโ€™s same bin

oblique pulsar
#

How did it work for someone else

#

Im confused

#

๐Ÿ˜„

mental slate
#

so am I

#

have you ever get it run on muOS since we're testing ?

oblique pulsar
#

Nope, only the splash

#

And i never installed the packages

mental slate
#

ok

oblique pulsar
#

Do you know who got it working?

#

Lets make sure

mental slate
#

I need to do some archeology here XD

oblique pulsar
#

lol

#

Worst case we exclude muos

#

You put way too much work into this๐Ÿ˜„

mental slate
#

I'm a perfectionnist ๐Ÿ˜„

oblique pulsar
#

Best curse to have ^^

mental slate
#

let me test something ๐Ÿ˜„

#

on arkos first

oblique pulsar
#

sure

mental slate
#

(disabling this dynos audio stuff in the source code)

oblique pulsar
#

Sounds like a good idea

mental slate
#

still work on arkOS without music

oblique pulsar
#

Exact same thing๐Ÿ˜ฌ \

#
Audiodevice[0]=audiocodec,
Audiodevice[1]=ahubhdmi,
FATAL ERROR:
DynOS_Music_GetDevice: Could not open music device. (ALSA: Couldn't open audio device: Device or resource busy)
mental slate
#

that's crazy ๐Ÿ˜„

#

but thx for the test ๐Ÿ˜„

#

I wonder how it can try to open an audio device

oblique pulsar
#

๐Ÿคทโ€โ™‚๏ธ

mental slate
#

and the dynos folder is empty ?

oblique pulsar
#

yeah i dont have a dynos folder

#

Does it not open any audio on your arkos

mental slate
mental slate
#

ok, let's build a version that works for other with audio pack now ๐Ÿ˜„

#

build done, testing arkos without audio pacl

#

without audio pack there is no sound when mario jump XD

#

but it runs...

#

can't do magic for muOS ^^

#

I'll pack the testing-v3.7

#

here it is

  • testing-v3.7
  • modify source code to avoid opening additional audio device when no dynos audio pack is installed (workaround for muOS that now can run the game but without the music and also without lot of SFX).

TL;DR: if you want to give a try:
download testing-v3.7
unzip it in roms/ports/
put your SM64 rom in roms/ports/render96ex with the name baserom.us.z64
run render96ex.sh

Note: if you are a muOS user don't install the dynos audio pack

oblique pulsar
#

Nice work man. I think this should be the final contender๐Ÿ˜„

mental slate
#

^^

#

cloning my PortMaster-New fork locally. My SSD is gonna explode XD

oblique pulsar
#

It failed the first two times for me lol

mental slate
#

that's just few GB in fact

#

9.61 GB

oblique pulsar
#

If you need someone to check the port package feel free to send it to me

#

Ill go over it real quick

mental slate
#

thx Jan !

mental slate
#

@oblique pulsar
here is my port structure

- Creating render96ex.zip
 - Added render96ex/sm64.us.f3dex2e.aarch64
 - Added render96ex/bin.aarch64/text_viewer
 - Added render96ex/restool.zip
 - Added README.md
 - Added gameinfo.xml
 - Added render96ex/restool-msg.txt
 - Added port.json
 - Added render96ex/sm64.CC0-1.0.license
 - Added render96ex.sh
 - Added render96ex/cover.png
 - Added screenshot.png
 - Added render96ex/libs.aarch64/libdl.so.2
 - Added render96ex/RENDER96-HD-TEXTURE-PACK.GPL-3.0.license

I put cover.png in ports/render96ex/render96ex instead of ports/render96ex because the gameinfo.xml cover entry will be render96ex/cover.jpg

oblique pulsar
#

Could you send the zip to me? Structure looks good to me

mental slate
oblique pulsar
#

oh yeah i think cover should be one up

#

Doesnt matter ill go over the zip

mental slate
#

it's strange to me to have, the covers in PortMaster-New/ports/render96ex instead of PortMaster-New/ports/render96ex/render96ex when I see this in my port installation:

RK3566:~/roms/ports # ls */cover.*
Half-Life/cover.png          smw/cover.png
Wip/cover.png                soh/cover.jpg
ccleste/cover.png            sonic1/cover.png
chipndale/cover.png          sonic2/cover.png
doom3/cover.png              soniccd/cover.png
jazz2/cover.png              sorr/cover.png
openjazz/cover.png           spacecadetpinball/cover.png
pacman/cover.png             sstfe.bakcup/cover.png
prototype/cover.png          sstfe/cover.png
rvgl/cover.png               sstse/cover.png
sdlpop/cover.png             zelda/cover.png
oblique pulsar
#

It restructures the port while installing

#

Or when creating the zip

#

I dont know exactly how it works

mental slate
#

ok so I put cover.png in PortMaster-New/ports/render96ex and we're ready to PR ?

mental slate
oblique pulsar
#

Okay im looking at the zip now

#

Oh lol

mental slate
#

I've updated the file on this link with the cover.png in the expected path

oblique pulsar
#

wasnt done one moment๐Ÿ˜„

#

Changes:

  • Restructured all the portfiles
  • Renamed to README.md
  • Resized image to 640x480
  • Compressed the images

Things to do:

  • Make sure you make the readme (and other files for that matter) with the tools on the site.
#

Removed restool so i can send it here

mental slate
#

oh thank you

#

Should I rewrite the readme ?

oblique pulsar
#

This makes sure the structure is always the same for every port

mental slate
#

ok

oblique pulsar
#

Just to be sure i would redo the port.json and xml too

mental slate
#

what is wrong in port.json and xml ?

oblique pulsar
#

Kloptops has an automatic full checklist for every pr but still

#

Did you make them with the generators on the site?

#

Because errors are easy to make when you edit one from another port

mental slate
#

I copied from another port and edited in Visual Studio

oblique pulsar
#

Just a tip, you dont have to if you think theyre correct

#

its just that one comma can be enough haha

mental slate
#

Visual Studio is nice to warn about the syntax error I know

#

but yeah, especially JSON is mean

#

not as mean as yaml doggokek

oblique pulsar
mental slate
#

when I read or write yaml I am always stressed ๐Ÿ˜„

oblique pulsar
#

Ive heared the stories here haha

mental slate
#

binary TLV is also fun

#

Type Length Value in raw ๐Ÿ˜„

mental slate
#

ok, I've rewrote the port.json, README.md and gameinfo.xml with the tools. Better be 100% sure ๐Ÿ™‚

#

@oblique pulsar you want to check again or I can PR ?

mental slate
#

I think I'm gonna PR. In the worst case it is rejected ๐Ÿ˜„

#

PR #493 on the way !

oblique pulsar
#

Sorry man was afh

#

Well done3718nukacola

woeful holly
#

There's no sound with muOS yet?

#

Or is that just the pack?

oblique pulsar
#

Theres some sounds

#

Audio driver is limited on muos

#

Its like 80% of the sound? @mental slate

mental slate
#

sm64ex is maybe a better option to play a SM64 port on muOS

#

still I'm not even 100% sm64ex will run perfectly on muOS

woeful holly
#

I just tried to install this and I got this from the log.txt

Ressources are missing.
/mnt/sdcard/roms/05other/01PORTS/Super Mario 64 - Render96.sh: line 118: text_viewer: command not found
/mnt/sdcard/roms/05other/01PORTS/Super Mario 64 - Render96.sh: line 138: 27948 Killed $GPTOKEYB "sm64.us.f3dex2e.${DEVICE_ARCH}"
/mnt/sdcard/roms/05other/01PORTS/Super Mario 64 - Render96.sh: line 134: systemctl: command not found

woeful holly
#

Yeah

#

SP

#

Did I do something wrong? I installed it like most ports I have installed and I've got a lot running correctly

#

I'm looking at the pins but the link that's associated to it has been deleted when you click on it

mental slate
#

give me 1 min

woeful holly
#

You guys might want to adjust the pins as well I guess

mental slate
#

@woeful holly try this one please render96ex.zip (this is the release candidate)

#

crap the text_viewer has lost its executable flags ๐Ÿ˜ญ

#

@woeful holly ok, I have fixed the executables flags in this zip archive. You can download it to test

woeful holly
#

Thanks man I'll try it

mental slate
#

if you're on muOS don't answer yes when it asks to install the dynos audio pack

woeful holly
#

Yeah it's running now

#

Seems like some SFX are good but no music or Mario voices

#

Controls don't respond tho on my SP. Mario ducking like he scared

mental slate
#

I wonder if the SP has R1 and L1

#

oh yes it even has R2 and L2 !

woeful holly
#

It does

#

Dpad doesn't work tho

#

So can't move anything

oblique pulsar
#

@hazy crag could you give kotzebuedog a porter role? ๐Ÿ™‚

mental slate
woeful holly
#

Okay thank you

mental slate
#

used in SDL framework

woeful holly
#

Damn ok

#

I'll try to see if I can. I have a feeling some devs have it

oblique pulsar
#

Its not made for joystickless devices๐Ÿ˜„

mental slate
#

then in sm64config.txt i think you need to set key_stickup / key_stickdown / key_stickleft \ key_stickright

mental slate
oblique pulsar
#

Thanks cebion๐Ÿ˜„

woeful holly
#

@oblique pulsar would you happen to have the SDL codes for the d-pad?

#

I'm learning on the fly. All of this stuff is very new to me

oblique pulsar
#

I dont, controller configs have always been a headache to me lol

woeful holly
#

So apologies for all the questions guys

#

Okay thanks

oblique pulsar
#

Just wondering, does this game have keyboard support?

mental slate
oblique pulsar
#

But not wasd for movement?

mental slate
oblique pulsar
#

Huh

#

Right click a message and pin it?

mental slate
#

I can scroll but..

oblique pulsar
#

Yeah top right

#

Pinned messages๐Ÿ˜„

mental slate
mental slate
#

maybe I must disconnect and reconnect

#

nope

#

But I'm proud, I am a port cadet now ! ๐Ÿฅน

#

a port cadet who made 3 additional commits after his PR because he missed few things...

#

and this is why we say in french

Jamais deux sans trois

oblique pulsar
#

My first pr wasnt great lol

#

I think cebion requested changes twice :p

#

And like 6 commits in total haha

mental slate
#

We learn by failling ๐Ÿ™‚

oblique pulsar
#

I think maybe you need port engineer for pinning? Idk

oblique pulsar
#

I dont get the roles tbh๐Ÿ˜„

#

You can now call the port navigators though for new ports

#

And i think you have access to the dev channels?

mental slate
#

While can you unpin every message here

oblique pulsar
#

Sure

mental slate
#

I'll made a new one with the release candidat

oblique pulsar
#

Aight go ahead ๐Ÿ™‚

mental slate
oblique pulsar
mental slate
#

TL;DR;
At the moment this port has been submitted with pull request #493. If you want to install it manually:

  1. download the last release candidate build of this port render96ex.zip
  2. unzip it in roms/ports/
  3. put your SM64 rom in roms/ports/render96ex with the name baserom.us.z64
  4. run render96ex.sh
  5. read README.md if needed

Also check ./render96ex/sm64.us.f3dex2e.aarch64 and ./render96ex/bin.aarch64/text_viewer have the executable flag (windows unzipping like to mess with this flag)

#

@oblique pulsar can you pin my last message pleaze ?

#

Ok my friend, swimming pool time for us here !

#

Have a great evening / day !

oblique pulsar
#

<@&1216123318122577972>

#

PR has been sent, but a couple tests doesnt hurt.

mental slate
#

Yessss beat me with other issues please doggokek

wraith finch
#

Will try it in a few hours

mental slate
wraith finch
mental slate
#

the handheld

#

sorry for making you confused

wraith finch
#

X55 and of course Rocknix

mental slate
#

nice ! I wonder how it will run @ 1280x760 and if it can handle it with the 3d model pack enabled (by default it is disabled)

#

Let me know when you have tested it ! ๐Ÿ™‚

wraith finch
#

Im copying it over

mental slate
#

no hurry ๐Ÿ™‚

wraith finch
#

Idk if it's running full speed but it runs

#

Okay i don't think its running full speed, some times its running a bit slowly

#

I have enabled all things that the tool wanted

#

And either im A little rusty or is the stair thing disabled

mental slate
mental slate
viral nebula
#

If I had to guess is he talking about that one speed running thing where if you backwards long jump up that one starecase you can basically clip through the invisible barrier and get to the end of the game early?

oblique pulsar
#

Like that speedrun thing i think

viral nebula
#

I don't see why it'd be fixed unless render96 is based off the Japanese release where it was fixed

oblique pulsar
#

I mean maybe render96 isnt 100% accurate

#

Or damian is indeed a bit rusty ๐Ÿ˜‰

viral nebula
#

that would be the funnier alternative

mental slate
#

Anyway, the port is US version base built

viral nebula
#

?? Tf i do lol I just suggested it

oblique pulsar
#

huh?

wraith finch
#

Yep, a blj, but i think it actually cause I can't hold the Controller like i would and last time i did some was like 1.5 years or something, and yeah in the settings under Cheats i think is a setting that called blj everytime so

wraith finch
mental slate
teal verge
#

Hey just came to say that I installed render96 today on my rg35xx-h through muos11 and it run and looks beautiful. It blew all my expectations!
Iโ€™m just wondering if music is going to be available for this version? Thanks for the amazing work

fossil pendant
#

Pretty sure we have to wait for muOS to have pipewire before that'll be a possibility

#

at least from my understanding

mental slate
mental slate
wraith finch
limber moat
#

Im impressed as well, game looks great, like a proper remaster on rg35xx h via muOS

mental slate
#

I hope muOS users will get soon the update of the sound system to 100% enjoy this port โ˜บ๏ธ

signal cape
#

Would it work on the Plus/SP too or the analogue sticks are necessary?

mental slate
low jungle
#

For non-coop sm64 ports itโ€™s doable (R33S and RG28XX running regular sm64ex) but itโ€™s a chore to remap and quite a mediocre experience

#

I needed to connect a keyboard temporarily to remap properly

tardy wharf
#

I can't get this port to run

#

I downloaded the zip file in the pinned comment, renamed a usa rom of sm64 to baserom.us.z64, did everything but it still gives me error when trying to install it

mental slate
#

Hi @tardy wharf

tardy wharf
mental slate
#

What is the error my friend?

tardy wharf
#

There are two

mental slate
#

Letโ€™s start with the first one ๐Ÿ˜‰

tardy wharf
#

Ok 1 second

#

Im running the .sh file again to see the error

mental slate
#

You can also share the log.txt if you can

tardy wharf
#

I managed to install it but now whenever I run it the sm64 logo appears as well as the render96 logo, mario says "It's a me mario" and then the game exits out

tardy wharf
mental slate
#

Have you chosen to install the audio pack ?

tardy wharf
#

I have

#

I clicked yes on all of the options

#

Was that what I was supposed to do?

mental slate
#

At the moment there is a limitation on muOS which makes the game to crash when the audio pack is installed

#

You have two options

#

Rename render96ex/dynos/audio to render96ex/dynos/audio.disabled (itโ€™s an exemple) or restart the installation process and answer no for the audio pack

#

MuOS is supposed to be updated soon and it should fix this issue

tardy wharf
#

Just a question: Does saying no to the audio pack disable sound entirely on the game? Also, do I install the rest of the optional things? I don't really know what they mean

mental slate
tardy wharf
#

Ok thanks

mental slate
#

Sadly without the audio pack music and lot of sounds will be missing (Mario voices especially)

tardy wharf
#

If I install the other two packs will I have any problem?

mental slate
#

It should be ok

mental slate
#

The only workaround is to rewrite the audio engine of the game and I wasnโ€™t ready for it ๐Ÿ˜…

#

It would take more time than just wait for the muOS update

tardy wharf
#

If i click no for the audio pack during the installation now, will it be possible to turn it on in the future when muOS updates?

mental slate
#

Actually I had to modify the audio engine a bit so that you can at least run it on muOS without the pack. Originally even without the pack it crashed

mental slate
#

Then when you want to enable it you rename it back to โ€œaudioโ€

#

So that no need to reinstall the whole game

#

Read carefully the README.md there are precious information in there

#

Donโ€™t hesitate to share your experience on this port โ˜บ๏ธ

signal cape
signal cape
#

The RG280V doesn't have analogue sticks

mental slate
#

Almost swatch pocketable ๐Ÿ˜…

signal cape
#

I still love it, but now i'm using the 35XX SP as my device to bring on the bus commuting to work

woeful holly
#

I tried to get the controls to work. I was told it will once muos has analog to dpad swapping with the power button.

#

Need the SDL codes for the dpad

#

Sm64config.txt needs to be edited with those to have it work on the SP

mental slate
woeful holly
#

I don't know the codes

mental slate
torpid frost
#

Doesn't open on TrimUI Smart Pro CrossMix. I compared the SHA1 checksum before renaming the rom file. Log.txt shows:

Segmentation fault
Ressources are missing.
Segmentation fault
bash: you need to specify whom to kill
./render96ex.sh: line 76: systemctl: not found
mental slate
#

Hi @torpid frost Iโ€™m not sure that CrossMix is officially supported by Postmaster. I can still have a quick look at the log to try help you but please share the full log.

torpid frost
# mental slate Hi <@341039623113277440> Iโ€™m not sure that CrossMix is officially supported by P...

On the portmaster site has it listed as: "TrimUI Smart Pro: All Firmwares". Anyways above is the full contents of the log.txt file. I can ssh and run it directly and this is the output :

root@TinaLinux:/mnt/SDCARD/Roms/PORTS# ./render96ex.sh
./render96ex.sh: /mnt/SDCARD/Apps/PortMaster/PortMaster/device_info.txt: line 133: lscpu: not found
# TrimUI Smart Pro - TrimUI
```bash
DEVICE_INFO_VERSION=0.1.9
PM_VERSION=2024.07.01-1139
CFW_NAME=TrimUI
CFW_VERSION=1.0.4
DEVICE_NAME=TrimUI Smart Pro
DEVICE_CPU=a133plus
DEVICE_ARCH=aarch64
DEVICE_RAM=1
DEVICE_HAS_ARMHF="N"
DEVICE_HAS_AARCH64="Y"
DEVICE_HAS_X86="N"
DEVICE_HAS_X86_64="N"
DISPLAY_WIDTH=1280
DISPLAY_HEIGHT=720
ASPECT_X=16
ASPECT_Y=9
DISPLAY_ORIENTATION=0
ANALOG_STICKS=2
```
current_mode 1280x720
MALI_CreateWindow:0x55716fa540 done.
Segmentation fault
Ressources are missing.
Segmentation fault
bash: you need to specify whom to kill
./render96ex.sh: line 76: systemctl: not found
root@TinaLinux:/mnt/SDCARD/Roms/PORTS#

mental slate
#

The log.txt only contains 6 lines ?

#

Itโ€™s night time here so we can continue this next day for me โ˜บ๏ธ

torpid frost
small sleet
#

starts from the terminal but not emulationstation menu on amberelec. wierd?!
any ideas what could be the cause?

mental slate
#

Hi @small sleet What happens exactly when you start from ES ? Is there log?

oblique pulsar
#

Weird, i tested it on amberTurtleThink

#

I am running a version from january i think

#

Maybe some update changed it

mental slate
oblique pulsar
#

Sure

oblique pulsar
#

Still works with the new package on amber/r36

#

version 20230203๐Ÿ˜…

#

odroid-go3 version of amberelec on r36

mental slate
#

@small sleet is your CFW updated with the last version ?

mental slate
woeful holly
#

These controls work for me for the SP

oblique pulsar
#

Look at that

#

Perfect

woeful holly
#

Would this count as a contribution? Loll

oblique pulsar
#

@mental slate

mental slate
#

Thanks @woeful holly

woeful holly
mental slate
woeful holly
#

I looked at the config and looked at the menu and kind of figured it out from there.

#

Your message just triggered me to look at it. If I had seen it earlier I probably would have gotten it earlier when I was asking about it lol

#

I had to edit the menu and go back into the game and go back and forth because if you bind the d-pad as the analog in the first row of the three rows of binds, the game will crash and won't start back until they are removed

#

There was also some conflicts going on with the Z-Trigger which is why Mario was stuck in the crawling state

#

I guess as soon as they figure out the audio, this port will be working perfectly

mental slate
#

Good job ! I was trying to get something for dpad user with my rh353vs but itโ€™s hard to test as even without joystick setup the game is using them ๐Ÿ˜…

woeful holly
#

Just glad it's figured out and now everybody can play it on their SP

mental slate
#

I wonder if you config also works for rg35xx non sp

mental slate
#

@woeful holly when you've got the time, can you please detail the mapping you have. I got that DPAD is for movement. How have you mapped the other actions (https://strategywiki.org/wiki/Super_Mario_64/Controls). I don't need of course the combinations like Long Jump, Slide Kick...

Also, in the lounge someone (see #โ˜•๏ฝœlounge message) suggested for dpad only handheld to use L1 and R1 for "Rotate/Center camera" (key_cleft and key_cright). I was thinking that X and Y could also be mapped to "Zoom In/Zoom Out" (key_cup and key_down). If you configure the camera as "Free camera Enabled" + "Analogue camera Disabled" in the option menu you get something that might be interesting. L2 can be used to duck (key_z) and R2 for Camera mode (key_r). What do you think? Can you get a working configuration like this with your SP ? (maybe this is what you did, waiting for your mapping details ^^)

woeful holly
mental slate
#

But Iโ€™ll see with @hybrid canyon to dig his idea

#

Thanks mate !

mental slate
#

@hybrid canyon based on your suggestion. The walking thing is not possible still. However I have tested a similar configuration with my rg353vs and playing with dpad seems more comfortable.

Use L1 and R1 for "Rotate/Center camera" (key_cleft and key_cright).
Use X and Y to "Zoom In/Zoom Out" (key_cup and key_down)
L2 can be used to duck (key_z) and R2 for Camera mode (key_r).
Configure the camera as "Free camera Enabled" + "Analogue camera Disabled" in the option menu

small sleet
#

(i think the .sh file name changed between testing and release, which threw me ๐Ÿ˜œ )

woeful holly
#

@mental slate I'm just out with the lady ATM. I can do it for you tonight or tmrw for sure

mental slate
mental slate
mental slate
hazy nexus
#

Can I limit framerate somehow?

#

I need a framecap.

mental slate
#

have you disabled 60 fps and the game is running too fast ?

hazy nexus
#

Yeah

#

I disabled 60fps because it caused slowdowns

#

The optimal is 30 I think

#

Harkinian had the same issue

mental slate
#

From my experience, when you disable 60 fps it takes 5 to 10 secondes to get the 30 fps stable

#

on rg353vs

hazy nexus
#

It's worst in the castle hub.

#

In levels seems fine.

mental slate
#

does the vsync change something ?

hazy nexus
#

vsync just forces it to be too fast

#

With vsync and 60fps off it's a stable fps probably 80% of the time

mental slate
#

are you with rocknix ?

hazy nexus
#

Again the issue is only in the hub, and on amberelec.

mental slate
#

ok

hazy nexus
#

vsync is the solution in worlds

#

Castle hub is the only one that's noticeable.

mental slate
#

even after waiting 10 seconds it is still too fast in the castle hub ?

hazy nexus
#

Sometimes

#

Turned the model pack off and no further issues.

mental slate
#

It's a tricky issue, I already had to fix the code to get the 30 fps working

hazy nexus
#

Surprising since rg552 has the most ram

mental slate
#

so without 3d model pack , it runs fine in the castle hub ?

hazy nexus
#

I'll let you know in a few :p

mental slate
#

I thing that SDL_GL_SetSwapInterval doesn't work in our portmaster environment

hazy nexus
#

Huh, it's fine now.

mental slate
#

timer sync is imperfect

hazy nexus
#

Yeah seems it takes a while to find its groove.

mental slate
hazy nexus
#

In harkinian, imgui allows us to set the framerate target

#

Target of 20-30 was best

mental slate
#

oh ok, I had no idea it has this feature

#

I still have to try 2ship2, you were to fast at porting it

#

I even had not the time to install it XD

woeful holly
hazy nexus
#

Ok after some fiddling it almost seems like using the model pack disabled vsync and just has the game running whatever frames it can generate.

mental slate
#

thanks for testing. I'll see if I find something in the dynos part of the code.

#

@hazy nexus is amberelec on panfrost or libmali gpu driver ?

hazy nexus
#

Mali afaik

mental slate
#

ok ๐Ÿ‘

hazy nexus
#

Is there a setting for instant turn instead of this circular stuff?

mental slate
hazy nexus
#

Mario turns in a small circle instead of changing direction on the spot.

mental slate
#

Honnestly I have no idea. I don't know SM64 that much and I even haven't noticed something unusual when running with mario

#

let me show how he behaves here ๐Ÿ™‚

hazy nexus
#

It's a normal movement for n64, he turns in a small circle. Was wondering if there was some hack or cheat to make it more accurate turning.

mental slate
mental slate
woeful holly
hazy nexus
woeful holly
#

No jump but instant turn isn't it?

hazy nexus
#

Not the same as zero-point turns.

mental slate
#

I need volunteers to test an update of renderex96. Changes are:

  • a unique gamepad configuration compatible with 2-sticks/1-stick/dpad devices
  • disabling audio pack by default for muOS user
  • update in README.md
#

Who's in ? ๐Ÿ˜„

leaden fossil
#

I have just recently started playing render96. I think it's huge run on my x55. Also I was surprised to find out rumble works when I hook up a ps4 controller!

mental slate
severe shell
#

I just realized that rumble is not working on RGB30 with a rumble motor added and enabled.

#

...and that the resolution options were never implemented/fixed

severe shell
#

Controls are fine, though

mental slate
#

Thank you for testing

mental slate
oblique pulsar
#

The rgb30 doesnt come with a rumble motor from the factory?

#

Did you mod it or something

mental slate
severe shell
#

I does not come with it, but has the pads on the PCB. I added motors using Christian's instructions on the Wiki FAQ

oblique pulsar
#

Cool

mental slate
#

The wiki link

severe shell
mental slate
oblique pulsar
#

I was testing on this image already

#

Audio updates will come sooner or later๐Ÿ˜„

mental slate
oblique pulsar
#

Maybe? Hopefully?

mental slate
#

Banana is not for tomorrow if I understand the strategy

oblique pulsar
#

Probably in a couple months

mental slate
severe shell
#

It was. But I'm testing the other systems that had rumble and they're not working now either. I'm checking in the other server to see if anyone can confirm rumble broke

mental slate
severe shell
#

Yeah. Both pcsx_rearmed_rumble and swanstation are not causing rumble now

mental slate
#

Well so thatโ€™s something outside of sdl2 and render96ex I guess

severe shell
#

Ah. Sleep mode kills it. I had to restart and re-enable it to get it to respond

#

It should rumble when long jumping into a wall, right?

mental slate
mental slate
severe shell
#

Yeah, no rumble from ground-pound

#

I have the setting at 100 now