Homebrew RetroArch - A new multi-system emulator

  • Thread starter Thread starter Toad King
  • Start date Start date
  • Views Views 743,126
  • Replies Replies 3,294
  • Likes Likes 27
Status
Not open for further replies.
I guess no one can explain the code dumps?

yeah I do get this sometimes, but I figure this emulator is in such an early state especially when you have to reload the emulator to switch roms..
One thing I would love the devs to do is put a reload after the core dumps so it can kick you back to HBC since they are so frequent.
Wii MC has this reload/exit after a core dump so we don't have to get up and hold the power button everytime.. This is especially helpful if I want to test out large list of roms.
 
The 'core changing' code used for Wii (we like to call this 'libretro management' and it has a name - Salamander) is a notoriously hacky bit of code - I'm surprised it even works right now - what surprised me and ToadKing even more when doing the port is how lacking the libogc SDK is in allowing you to start another executable.

Unfortunately, libogc has next to zero decent facilities for doing an 'exitspawn' or 'fork' like what is being offered on nearly every other system (Xbox 1/360 having XLaunchNewImage, PS3 having an exitspawn system call, the Revolution SDK having something similar, libogc having exactly... jack squat) - so hacky and error-prone code is the best that can be managed for now. Hopefully wwe might be able to nail down some of the problems with this management code - but personally I think it's a deadend.
 
I get codedumps too. sometimes my wii freezes while changing between cores.


one thing I would also like to know.
While playing pulstar and blazingstar on RA, there are a lot of slowdowns during explosions. Does that also happen on the neogeo?

Might be emulator inaccuracies in terms of timing in the FBA core or perhaps the games really did have such slowdowns (can't tell - I don't own a Neo Geo or an arcade machine).

What I do know is that on MAME you could bump up the M68K core's speed over 100% so that you could cut down on these slowdowns - the side-effect would be that it would increase processing power required but that's unavoidable anyways since you're overclocking the (emulated) processor which requires more CPU time.

what I mean like slowdowns in snes (not emulator) Contra3, firststage and huge explosions.

I own an NTSC cart of that game but my US NTSC SNES machine is busted so I can't really run it and tell you whether or not it has the (perceived or not) slowdowns in it - what I do know is that both the Neo-Geo and the SNES were underpowered machines in their own ways - so slowdowns were not uncommon at all, especially on the SNES (with a 3.58MHz processor - the main CPU used in the SNES was a slow piece of crap from the day it launched - and the Genesis CPU trounced it in every respect).
 
I made an icon for Retroarch based on the forwarder channel by mastershoes.​
8XnNP.png
What I do know is that on MAME you could bump up the M68K core's speed over 100% so that you could cut down on these slowdowns - the side-effect would be that it would increase processing power required but that's unavoidable anyways since you're overclocking the (emulated) processor which requires more CPU time.
Surely, overclocking a machine by a few megahertz shouldn't hurt emulation speed too much? I'd like to see the Neo Geo overclocked on the Wii, also the slowdowns encountered in shoot em ups like Pulstar and Metal Slug 2 are in fact the same slowdowns encountered on original hardware, maybe a little slower but generally in the same areas​
especially on the SNES (with a 3.58MHz processor - the main CPU used in the SNES was a slow piece of crap from the day it launched - and the Genesis CPU trounced it in every respect).
But the sound chip and the GPU on the SNES far outclassed the Genesis, the only thing it really had going for it was 'BLAST PROCESSING':P
 
The 'core changing' code used for Wii (we like to call this 'libretro management' and it has a name - Salamander) is a notoriously hacky bit of code - I'm surprised it even works right now - what surprised me and ToadKing even more when doing the port is how lacking the libogc SDK is in allowing you to start another executable.

Unfortunately, libogc has next to zero decent facilities for doing an 'exitspawn' or 'fork' like what is being offered on nearly every other system (Xbox 1/360 having XLaunchNewImage, PS3 having an exitspawn system call, the Revolution SDK having something similar, libogc having exactly... jack squat) - so hacky and error-prone code is the best that can be managed for now. Hopefully wwe might be able to nail down some of the problems with this management code - but personally I think it's a deadend.

it's possible to switch from emulators to hbc application and back again to apps without any issues and without relaunching the channel through ios, so i am sure libogc can do what you want.
 
The 'core changing' code used for Wii (we like to call this 'libretro management' and it has a name - Salamander) is a notoriously hacky bit of code - I'm surprised it even works right now - what surprised me and ToadKing even more when doing the port is how lacking the libogc SDK is in allowing you to start another executable.

Unfortunately, libogc has next to zero decent facilities for doing an 'exitspawn' or 'fork' like what is being offered on nearly every other system (Xbox 1/360 having XLaunchNewImage, PS3 having an exitspawn system call, the Revolution SDK having something similar, libogc having exactly... jack squat) - so hacky and error-prone code is the best that can be managed for now. Hopefully wwe might be able to nail down some of the problems with this management code - but personally I think it's a deadend.
The libogc guys are always open for suggestions, at least i thought they were.
 
The 'core changing' code used for Wii (we like to call this 'libretro management' and it has a name - Salamander) is a notoriously hacky bit of code - I'm surprised it even works right now - what surprised me and ToadKing even more when doing the port is how lacking the libogc SDK is in allowing you to start another executable.

I hope this issue doesn't divert your attention and limited time from other issues, like performance.
If all else fails, you could have the user use a button combo to manually restart the core, when he/she wants to load another game (for the same core). If the core remembers the rom folder, and button settings after the restart (i think arguments could enforce this), then problem sidestepped in a large percentage and one less headache for the developers. Again, thanks for the progress so far.
 
it's possible to switch from emulators to hbc application and back again to apps without any issues and without relaunching the channel through ios, so i am sure libogc can do what you want.

Homebrew Channel is not open source - so there's no way to look at their code and see what they're doing.
 
Any insight about the gradual performance loss over time (Snes9x Next)?

You have determined that this only happens with SNES9x Next and not the other cores? I believe i asked this before.

I just want to be sure this is related to SNES9x Next before I decide to investigate it.
 
it's possible to switch from emulators to hbc application and back again to apps without any issues and without relaunching the channel through ios, so i am sure libogc can do what you want.
HBC does this through a stub loader, but returning to the HBC is dead simple to do: Launch the HBC Channel ID. That functionality is built into IOS, so it's just a simple command. The issue is getting the code for launching an arbitrary .dol file to work reliably, and it appears the method we've been using doesn't work 100% of the time, which sucks.
 
You have determined that this only happens with SNES9x Next and not the other cores? I believe i asked this before.

I just want to be sure this is related to SNES9x Next before I decide to investigate it.

I've only seen it on Snes9x Next and not other cores, so I can answer that with a confident "yes". Other cores don't have this issue.
 
I also noticed after playing a while RA freezes. It happens when my HDD turns on again (changing roms) after standby mode.
 
HBC does this through a stub loader, but returning to the HBC is dead simple to do: Launch the HBC Channel ID. That functionality is built into IOS, so it's just a simple command. The issue is getting the code for launching an arbitrary .dol file to work reliably, and it appears the method we've been using doesn't work 100% of the time, which sucks.
If you want any open sourced stuff to look at, there are a lot of other homebrew apps that can launch a DOL file
WiiXplorer
WiiFlow
USB Loader GX
PostLoader
Multi Mod Manager
are the first few that come to mind.
 
If you want any open sourced stuff to look at, there are a lot of other homebrew apps that can launch a DOL file
WiiXplorer
WiiFlow
USB Loader GX
PostLoader
Multi Mod Manager
are the first few that come to mind.
We use the same method those loaders do. The issue is both the setup for this leaves no room for recovery if it fails somewhere along the way. (We have to trash the program heap to load the .dol into memory, since we don't have any memory free in RetroArch for the majority of the cores.) It doesn't help that the libfat code for Wii homebrew is not the best and the way our loader works, if that fails to mount the SD card/hard drive, then we fail to launch.
 
Incredible emu. I just discovered it today.

Basically, i'm thrilled to think that i can run CPS2 on my Wii. Great work guys.
 
I also noticed after playing a while RA freezes. It happens when my HDD turns on again (changing roms) after standby mode.
Turn off your HDD sleep mode. There might be software to do this for your drive or there might be an alternate method if u google it.

If you want any open sourced stuff to look at, there are a lot of other homebrew apps that can launch a DOL file
WiiXplorer
WiiFlow
USB Loader GX
PostLoader
Multi Mod Manager
are the first few that come to mind.
MMM is closed source ;)
The dumps during core restarts are annoying but tolerable, I'd prefer they work on what they do best and it's performance. Eagerly awaits 0.9.8 :D
 
Hello,
today try emulator and find very promising.

Try to find right bios for neogeo and segacd but need some info.

Anyone can give name file and path position for bios files ?
is there a list of set version used for every cores ? (neogeo, FBA, etc)

thank you,
m.

off topic:
see that my user was deleted in last days, i'm so sad...
 
Hello,
today try emulator and find very promising.

Try to find right bios for neogeo and segacd but need some info.

Anyone can give name file and path position for bios files ?
is there a list of set version used for every cores ? (neogeo, FBA, etc)

thank you,
m.

off topic:
see that my user was deleted in last days, i'm so sad...

if you read the whole thread like I did, there you will find an answer.

you need the neo geo bios with 1,4 Mb filesize.
this bios should be at the same folder with your neogeo roms.
 
Tank you gb for reply,
But i don't want to read 42 pages from stratch.

Anyone can post some info about dat version used by RA team ?

I want to clean my games before test in my Wii.

Thank you,
M.
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum