Homebrew RetroArch - A new multi-system emulator

  • Thread starter Thread starter Toad King
  • Start date Start date
  • Views Views 742,081
  • Replies Replies 3,294
  • Likes Likes 27
Status
Not open for further replies.
But for some reason, the audio channels are reversed; left channel is on the right and the right channel is on the left. I know this because when you fire your charge beam on Mega Man X2, the *whoosh* sound comes from the wrong side when the channels pan.

Whoops, that issue again. I'm going to run this through OV2 and come up with a fix for Wii.

Also - allow me, even the leader code of this project, to be pleasantly surprised by the performance we've managed with SNES9x Next on Wii. The last time I tried running Yoshi's Island on Wii with SNES9x Next/REtroArch, it was a 50-55fps fest - so I put it down to it never being able to reach fullspeed on Wii.

Well - just replayed Yoshi's Island again on RetroArch Wii and it's running at 60fps fullspeed now - even at the world map. (Xbox 1 by comparison is much slower at this game)This is all with no frameskipping and using a core based on SNES9x 1.52. Guess those optimizations I rammed through really made a difference after all.
 
Well - just replayed Yoshi's Island again on RetroArch Wii and it's running at 60fps fullspeed now - even at the world map. (Xbox 1 by comparison is much slower at this game)This is all with no frameskipping and using a core based on SNES9x 1.52. Guess those optimizations I rammed through really made a difference after all.

First thing I did was check to see how that game ran on RetroArch Wii. I was so impressed with the performance. I remember this one being one of the problem games of SNES9x GX. Plus it seemed as though there was very little to no controller input lag. Personally I don't care what this program looks like (I actually really like the style) It gets the job done, and Isn't that the point?
I can't wait to test out how it plays street fighter alpha 3 (cps2 of course, the gba version is good but i like having more buttons) and mother 3.

Awesome work!
 
  • Like
Reactions: 1 person
But for some reason, the audio channels are reversed; left channel is on the right and the right channel is on the left. I know this because when you fire your charge beam on Mega Man X2, the *whoosh* sound comes from the wrong side when the channels pan.

Whoops, that issue again. I'm going to run this through OV2 and come up with a fix for Wii.

Also - allow me, even the leader code of this project, to be pleasantly surprised by the performance we've managed with SNES9x Next on Wii. The last time I tried running Yoshi's Island on Wii with SNES9x Next/REtroArch, it was a 50-55fps fest - so I put it down to it never being able to reach fullspeed on Wii.

Well - just replayed Yoshi's Island again on RetroArch Wii and it's running at 60fps fullspeed now - even at the world map. (Xbox 1 by comparison is much slower at this game)This is all with no frameskipping and using a core based on SNES9x 1.52. Guess those optimizations I rammed through really made a difference after all.

Thanks. Say, what GX libraries did you use ?? I know the GPU the Wii has can do A LOT if properly documented.
 
But for some reason, the audio channels are reversed; left channel is on the right and the right channel is on the left. I know this because when you fire your charge beam on Mega Man X2, the *whoosh* sound comes from the wrong side when the channels pan.

Whoops, that issue again. I'm going to run this through OV2 and come up with a fix for Wii.

Also - allow me, even the leader code of this project, to be pleasantly surprised by the performance we've managed with SNES9x Next on Wii. The last time I tried running Yoshi's Island on Wii with SNES9x Next/REtroArch, it was a 50-55fps fest - so I put it down to it never being able to reach fullspeed on Wii.

Well - just replayed Yoshi's Island again on RetroArch Wii and it's running at 60fps fullspeed now - even at the world map. (Xbox 1 by comparison is much slower at this game)This is all with no frameskipping and using a core based on SNES9x 1.52. Guess those optimizations I rammed through really made a difference after all.

Thanks. Say, what GX libraries did you use ?? I know the GPU the Wii has can do A LOT if properly documented.
The video code doesn't use anything more than the GX calls provided by libogc. Nothing fancy like TEV stages, although those might be usable to make shader-like effects, but I don't know much about them. I know the WiiMC guys use them for color conversion, but I don't really know their full capabilities.
 
But for some reason, the audio channels are reversed; left channel is on the right and the right channel is on the left. I know this because when you fire your charge beam on Mega Man X2, the *whoosh* sound comes from the wrong side when the channels pan.

Whoops, that issue again. I'm going to run this through OV2 and come up with a fix for Wii.

Also - allow me, even the leader code of this project, to be pleasantly surprised by the performance we've managed with SNES9x Next on Wii. The last time I tried running Yoshi's Island on Wii with SNES9x Next/REtroArch, it was a 50-55fps fest - so I put it down to it never being able to reach fullspeed on Wii.

Well - just replayed Yoshi's Island again on RetroArch Wii and it's running at 60fps fullspeed now - even at the world map. (Xbox 1 by comparison is much slower at this game)This is all with no frameskipping and using a core based on SNES9x 1.52. Guess those optimizations I rammed through really made a difference after all.

Thanks. Say, what GX libraries did you use ?? I know the GPU the Wii has can do A LOT if properly documented.

Nothing out of the ordinary other than what is presupplied with libogc. Only our syncing model can be considered unique and unconventional.

https://github.com/e...comment-6901187

Syncing on both video and audio is a paradox, but we have an experimental "rate control" method to approach the ideal case. Audio sampling rate (pitch) is slightly adjusted (inaudible) dynamically so that video and audio clocks can appear to be in perfect sync. It doesn't always work right though, and sampling rate / FPS values must still be reported correctly. If you are familiar with asynchronous USB, it's a very similar approach.

You can find our code here -

https://github.com/T...ister/RetroArch

Any input/additional help and insight related to the GPU and undocumented features is certainly welcome.

Re: SNES9x Next - even Star Fox 1 runs at 59/60fps. Damn - seems like I need to update that README to reflect the fact that in fact, most SuperFX games do run at fullspeed.
 
Thanks guys, I begun with ASM some months ago, and debugging some stuff using a on-board ATI I have. Looking to run those "blobs" on GX...

Good job..

edit: however i'm using a C compiler for now... not doing any black magic in ASM ... until I get how to fetch per SIMD instructions..
 
EDIT: Just wanted to say the Snes9x Next is awesome! But for some reason, the audio channels are reversed; left channel is on the right and the right channel is on the left. I know this because when you fire your charge beam on Mega Man X2, the *whoosh* sound comes from the wrong side when the channels pan.
Libogc's AUDIO_InitDMA() function expects samples to use right,left,right,left,... interleaving which is not documented anywhere afaik. A lot of programs have the channels backwards, especially anything using SDL-Wii.

It also looks like you're using a RGB555 texture for the video - if the source is 8-bit indexed, you could get a lot more speed by using a proper hardware palette and if the palette entries contain full 8-bits for each channel you can use two TEV stages to get the full 24-bits of output rather than reducing it to 15-bits.
 
I know a couple people wanted some media of the emulator in action, so I took a quick screenshot of the menu interface.

46g5s.png


EDIT: Just wanted to say the Snes9x Next is awesome! But for some reason, the audio channels are reversed; left channel is on the right and the right channel is on the left. I know this because when you fire your charge beam on Mega Man X2, the *whoosh* sound comes from the wrong side when the channels pan.
Libogc's AUDIO_InitDMA() function expects samples to use right,left,right,left,... interleaving which is not documented anywhere afaik. A lot of programs have the channels backwards, especially anything using SDL-Wii.

It also looks like you're using a RGB555 texture for the video - if the source is 8-bit indexed, you could get a lot more speed by using a proper hardware palette and if the palette entries contain full 8-bits for each channel you can use two TEV stages to get the full 24-bits of output rather than reducing it to 15-bits.
Thanks for those audio tips.

While we could use hardware palettes, libretro was designed to be system-agnostic, so to support systems without paletted video, we have emulator cores all return RGB555 video. We may lose some speed in the conversion, but it makes supporting all the emulator cores we use easier. Adding paletted video might be an addition to libretro in the future, but full RGBA8 will come before that.
 
That seems like you're sacrificing speed, quality and memory on the systems that do support it rather than a little bit of speed (and memory reduction) on the systems that don't.
 
i'm more than IMPRESSED with all the work and thought that has gone into this emulator
ok so i've only tested and loved the CPS1+CPS2 and it works a treat
been reading what might be intrudced into the next version...

loved *Mame by "KING" Toad *wink,wink!
 
That seems like you're sacrificing speed, quality and memory on the systems that do support it rather than a little bit of speed (and memory reduction) on the systems that don't.
The truth is most of the cores we use already render their screens to a 16-bit or 32-bit RGB screen and only use palettes internally. Modifying them to expose that palette could give us a speed boost and save memory, but we are already full speed in nearly everything and the places where we're low on memory (large arcade games) the memory we save would not be enough to make a significant difference.

That said, using palettes could definitely help in those isolated cases where we struggle a little bit, like hires mode in SNES. It'll be something I'll discuss with the other devs.
 
  • Like
Reactions: kineticUk
EDIT: Just wanted to say the Snes9x Next is awesome! But for some reason, the audio channels are reversed; left channel is on the right and the right channel is on the left. I know this because when you fire your charge beam on Mega Man X2, the *whoosh* sound comes from the wrong side when the channels pan.
Libogc's AUDIO_InitDMA() function expects samples to use right,left,right,left,... interleaving which is not documented anywhere afaik. A lot of programs have the channels backwards, especially anything using SDL-Wii.

It also looks like you're using a RGB555 texture for the video - if the source is 8-bit indexed, you could get a lot more speed by using a proper hardware palette and if the palette entries contain full 8-bits for each channel you can use two TEV stages to get the full 24-bits of output rather than reducing it to 15-bits.

Well, can't the channels be fixed so they output in the left/right positions at all or is it impossible? Oh, and if .srm/save state files can be hidden on the ROM selection list, that would be a boon. I'm not ungrateful in the least, don't get me wrong, just thought you'd like some feedback is all.
 
awesome work :D !!!!! ive got 2 quick questions: does segacd work with full audio?(music and fx) and i saw someone mention that donpachi, dodonpachi, and esprade are working. do Espgaluda and Ketsui, and dai-ou-jou also work? i remember there being some legal issue with these cave games a few years back in mame and fba... never really got the story on that or if they are playable again in newer revs of fba... at any rate, thanks for the amazing work!! im also really stoked to finally be able to play doom1-2 with music on my wii!!! which im gonna go try out right now :D
 
...and i saw someone mention that donpachi, dodonpachi, and esprade are working. do Espgaluda and Ketsui, and dai-ou-jou also work?

i tried to load up ketsui and ddp dai-ou-jou but both crashed. didnt try espgaluda.
 
...and i saw someone mention that donpachi, dodonpachi, and esprade are working. do Espgaluda and Ketsui, and dai-ou-jou also work?

i tried to load up ketsui and ddp dai-ou-jou but both crashed. didnt try espgaluda.

We'll most likely make a separate FBA core for those games - I think the ROMs might be too big in combination with mainline FBA - and the binary needs to be shrinked so that it all fits into memory.

FBA 0.2.97.27 was just released so we'll just upgrade to that and release it on all RetroArch systems as an installable upgrade core.

Also, ToadKing is going to be pushing a new version soon - I had another look at the CPS1/CPS2 and Neogeo FBA Cores and have finally fixed the sound clicking/skippiness that could be heard by anyone with headphones on. This was bugging me for the past few days and I'm glad I've got it sorted out now.
 
  • Like
Reactions: 2 people
I feel ever so stupid, I can't get any CPS2 ROMs to work. I've selected the CPS2 core, but whenever I select a ROM I get an error about ROM loading. They work fine on my PC.

Can someone point me in the right direction of what to do?
 
I feel ever so stupid, I can't get any CPS2 ROMs to work. I've selected the CPS2 core, but whenever I select a ROM I get an error about ROM loading. They work fine on my PC.

Can someone point me in the right direction of what to do?
When you say they work on your PC, do you mean they work with FBA v0.2.97.26? Because sometimes ROM formats change between releases. Make sure the ROMs you get are for that version of Final Burn Alpha.
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum