Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Emulation central - recommendations in 1st post

aweigh

Arcane
Joined
Aug 23, 2005
Messages
18,217
Location
Florida
I'm currently using a mix of two builds; I'm using the "CRO Fix" build that was slapped together to increase Pokemon Sun and Moon game performance except with the "guts" and the .executables of the Sept. 24th "Unofficial JIT" build:

https://firedrop.com/c36bee40c3ff2e7ce240b7d5bae7f874
 

sullynathan

Arcane
Joined
Dec 22, 2015
Messages
6,473
Location
Not Europe
If anyone can help, I'd like to know how save states work.

I have PCSX2 on a desktop and laptop. My laptop is the primary device and I want to use it to continue playing shadow of the colossus.
I've completed most of the game on the desktop and kept a save state thinking that I could just move it to my laptop. it didn't keep a save file like I thought.

I didn't want to move the memory card because I thought it would replace the one in my laptop since I have a bunch of games saved there.
 

Hirato

Purse-Owner
Patron
Joined
Oct 16, 2010
Messages
4,004
Location
Australia
Codex 2012 Codex USB, 2014 Shadorwun: Hong Kong
If anyone can help, I'd like to know how save states work.

I have PCSX2 on a desktop and laptop. My laptop is the primary device and I want to use it to continue playing shadow of the colossus.
I've completed most of the game on the desktop and kept a save state thinking that I could just move it to my laptop. it didn't keep a save file like I thought.

I didn't want to move the memory card because I thought it would replace the one in my laptop since I have a bunch of games saved there.

You can just move the memory card and "swap it in" as you would a memory card on a real playstation anyway.

You shouldn't rely on save states, as they will break between every version.
To transfer them, you'll need to figure out what the checksum/ID for the game is, and copy the appropriate file(s) from PCSX2's sstates folder.
 

A user named cat

Guest
Don't know if this is a new feature but using the latest GlideN64 plugin you can now select for aspect ratio "Adjust". This is essentially a widescreen hack without stretching like you'd find in PCSX2. Pretty cool.

3avWpY.jpg


emQza8.png


1Gc3lz.png
 

Hirato

Purse-Owner
Patron
Joined
Oct 16, 2010
Messages
4,004
Location
Australia
Codex 2012 Codex USB, 2014 Shadorwun: Hong Kong
Are there any other NDS emulators out there apart from Desmume?

Plain Desmume: Audio quality is absolute shit (constant underruns), but otherwise performs well.
Libretro Desmume: Audio quality is great (comparatively), but with only a software renderer, the performance is absolute garbage.

EDIT: This is what booting up Radiant Historia sounds like in plain Desmume.
 
Last edited:

flyingjohn

Arcane
Joined
May 14, 2012
Messages
3,253
Are there any other NDS emulators out there apart from Desmume?
You can try drastic,it is a android only ds emulator.
Ironically i get better performance running drastic in a virtual environment then desmume on windows.
 

tuluse

Arcane
Joined
Jul 20, 2008
Messages
11,400
Serpent in the Staglands Divinity: Original Sin Project: Eternity Torment: Tides of Numenera Shadorwun: Hong Kong
I don't think it's been mentioned in this thread, but there's kind of a secret n64 core for retroarch called glupen64.

You can get it here https://github.com/loganmc10/GLupeN64

It doesn't show up in the online updater list normally for Windows, and there's no 32bit version of the core.
 

A user named cat

Guest
Are there any other NDS emulators out there apart from Desmume?

Plain Desmume: Audio quality is absolute shit (constant underruns), but otherwise performs well.
Libretro Desmume: Audio quality is great (comparatively), but with only a software renderer, the performance is absolute garbage.

EDIT: This is what booting up Radiant Historia sounds like in plain Desmume.
If it isn't obvious, this is once again an issue on your end. The audio is stuttering because your pc can't keep up with the sync. It sounds absolutely fine for me. If anything, the main issue with Desmume standalone is the poor vsync scrolling in 2D games but that may be a problem with my mediocre monitor.

Desmume libretro is near perfect for the most part and certainly doesn't run slow either.

I don't understand why so many people insist on trying to game and run emulators on third world AMD and 2005 cpu's. This is the kind of headache you're going to keep dealing with. You need to be using i5/i7, be it Haswell or Skylake. If you can't afford it, then sell some shit or something. There's always a way. Buy a refurb/used prebuilt or barebones if you must, or a cpu/mobo combo. Piece your rig together like Frankenstein. I don't know but stop running emulators on archaic builds and you won't have problems like that.

This is how Radiant Historia's intro sounds for me on standalone Desmume, set to Cosine and Xaudio2:

 

sullynathan

Arcane
Joined
Dec 22, 2015
Messages
6,473
Location
Not Europe
caved in and bought DMC collection on PS3, its on sale. DMC 3 has too many glitches in PCSX2 and the PC version is fucked.
 
Joined
Apr 5, 2013
Messages
2,468
Plain Desmume: Audio quality is absolute shit (constant underruns), but otherwise performs well.
Libretro Desmume: Audio quality is great (comparatively), but with only a software renderer, the performance is absolute garbage.

For performance purposes - NO$GBA + Zoomer. Runs good even on single core processor.
Then for Android is DraStic - almost no slowdowns on such weak harware as Xperia J (1 GHz processor, 512 RAM).
 

A user named cat

Guest
No$gba sucks and isn't remotely a good alternative. It's good for one purpose: running some DSi titles as Desmume has zero support for them, otherwise its pretty poor.

Seriously if your rig is struggling with Desmume which isn't demanding whatsoever, donate your PC to a cancer ward and upgrade already instead of seeking retarded workarounds, tech support and alternatives. What is with the Codex and so many people here having shitty builds? I understand the nostalgia for RPGs of old and hanging onto the past, but keep your fucking PC hardware at least within the last decade. Just stay away from faggot Windows 10 and Linux and you're good to go.
 

tuluse

Arcane
Joined
Jul 20, 2008
Messages
11,400
Serpent in the Staglands Divinity: Original Sin Project: Eternity Torment: Tides of Numenera Shadorwun: Hong Kong
Desmume is a hog. It runs full speed on my main rig, but on my ancient secondary rig it runs much slower than emulators for more demanding systems.

I think only n64 emulators are worse at ratio of cpu power needed to cpu power emulated.
 

sullynathan

Arcane
Joined
Dec 22, 2015
Messages
6,473
Location
Not Europe
Is there a reason why retro arch can't recognize certain games when scanned?
Is it me, or does it feel like super metroid's controls aren't as responsive as metroid 1?
The control scheme is better but certain changes feel weird .
 

SCO

Arcane
In My Safe Space
Joined
Feb 3, 2009
Messages
16,320
Shadorwun: Hong Kong
Multiple reasons, but the main one is that retroarch is made by OCD people that checksum games for 'good' dumps... this includes cd/dvd games that as they are often dumped by the people themselves, are often badly dumped by a shitty cd-reader, or were never dumped by some group they 'believe' in to give them the md5sum or are simply hardpatch translations or hacks. Even with softpatches for example for snes games, sometimes require additional padding headers which their md5sum lists don't like.

Basically, it's autism. You will sometimes have to load a ROM file manually because the idiots didn't think it was a good idea to show 'bad' dumps in the collection list, despite any science saying 'the absence of evidence is not evidence of absence' and instead just fucking show the ROM with a red outline.

Also it's unfortunately the only way they match ROM files to consoles, so they can't do the above (yet) without a new way to associate - they'll probably end up with manually scanning dirs for a single platform assuming all matching ROM extensions in a dir are for only one console (for example iso can be for multiple consoles but it would scan assuming it's for a single one). There is a bug report about it now, like they should have fucking opened ages ago.
 
Last edited:

tuluse

Arcane
Joined
Jul 20, 2008
Messages
11,400
Serpent in the Staglands Divinity: Original Sin Project: Eternity Torment: Tides of Numenera Shadorwun: Hong Kong
On the retroarch forum there are scripts people make the generate the playlist files. You can also manually do it *shudder*
 

Hirato

Purse-Owner
Patron
Joined
Oct 16, 2010
Messages
4,004
Location
Australia
Codex 2012 Codex USB, 2014 Shadorwun: Hong Kong
Just poked around desmume's code a little bit.
And I have a vague idea of what is going on and causing the absolutely awful sound quality.


First of all, we have this constant
#define DESMUME_SAMPLE_RATE 44100

Then we have this absolutely tiny little file that passes it through to libSDL to mix and play the audio.
It does some weird shit like this in the initialisation

audiofmt.samples = audiofmt.freq / 60) * 2;
which it then normalises to 2048- I have no idea why it does the * 2.


It has a cyclic soundbuffer that is 735 * 4 bytes long (it's hardcoded to that in main.cpp)
And then It then has a MixAudio callback: static void MixAudio(void *userdata, Uint8 *stream, int len)

This callback copies exactly len bytes from the soundbuffer into the provided stream.

And the brings us to potential issue number 1:
I notice no explicit calls to SDL_(Un)lockAudio - I assume it's unnecessary because it's called in a callback from SDL audio itself.
SNDSDLGetAudioSpace probably should call it though.


And now this brings us to very real issue #2:
It always copies exactly len bytes into the SDL buffer, for the sake of argument, let's say len is 200.
If desmume has written only 198 to the buffer, this will allow a single stale sample (it's a 16bit format) to be copied into the stream, which will result in pops and other artefacts.
And then if the marker is uses to track copies bytes also passes the written position, it will now report an incorrect number of free bytes in the buffer until it wraps back around.
I assume this will cause some frames to get dumped, which will cause audio issues for about 0.033ms, which could result in pops or more likely in little instances of loopy audio and other weird issues..
 

A user named cat

Guest
You are doing deep, critical, scientific research on an issue that happens because your PC is slow shit and you're getting audio stuttering because it can't keep up with the sync. You would also witness this exact same issue if you were to try running another emulator your rig can't handle which has forced audio sync. Apparently my post was invisible as I showed clear proof that the sound is fine on my end. There's nothing wrong with Desmume's audio but apparently your brain is suffering from buffer underruns.
 

flyingjohn

Arcane
Joined
May 14, 2012
Messages
3,253
After testing a couple of games in desmume for audio issues there really seems to be some weird cackling sound bug in most games.
But it has nothing to do with your computer specs but with the dual spu synch mode in the audio options,it produces weird static on most games.
When i switched to synchronous method(either of the three options are fine) the sound sounded perfect and exactly like the video posted above.
edit:Tested some roms on both no$gba and the japanese desmume port and the they both have the same issues unless you use synchronous method for audio.
 
Last edited:

Hirato

Purse-Owner
Patron
Joined
Oct 16, 2010
Messages
4,004
Location
Australia
Codex 2012 Codex USB, 2014 Shadorwun: Hong Kong
After testing a couple of games in desmume for audio issues there really seems to be some weird cackling sound bug in most games.
But it has nothing to do with your computer specs but with the dual spu synch mode in the audio options,it produces weird static on most games.
When i switched to synchronous method(either of the three options are fine) the sound sounded perfect and exactly like the video posted above.
edit:Tested some roms on both no$gba and the japanese desmume port and the they both have the same issues unless you use synchronous method for audio.

Yeah, method P gave me the best results, and that is what I used for the recording, which is why it at least sounds normal at points.
With the dual sync method it was completely bad.

You are doing deep, critical, scientific research on an issue that happens because your PC is slow shit and you're getting audio stuttering because it can't keep up with the sync. You would also witness this exact same issue if you were to try running another emulator your rig can't handle which has forced audio sync. Apparently my post was invisible as I showed clear proof that the sound is fine on my end. There's nothing wrong with Desmume's audio but apparently your brain is suffering from buffer underruns.
If you're done being retarded, the word of the day for you to google is Race Condition.


If they upgraded at least to SDL2, they could call SDL_QueueAudio to write the audio data to the buffer when they're ready, rather than this approach where they take no effort to make sure that their internal buffer and the SDL buffer is synchronised.
How most other projects treat the audio buffer varies, but generally they have this concept of Audio Latency (typically between 50 to 200 ms) where the idea is that you fill up a buffer ahead of time to ensure that there's plenty still in the buffer so you don't end up with buffer underruns like this.
And for the most part, projects generally fill the buffer to capacity whenever they see an opening, it doesn't matter if they just simulated a 5ms step, if there's a 30ms gap in the buffer, by jove you better believe it's going to fill all 30ms with data.
This is where the need for mixing comes into play, if you start playing sound effects, you generally want it to play soon-ish, and not tack it onto the end of the buffer so it plays much later, so you'll just mix it into the middle of the buffer.
For these the read/writes happen at an offset that's about 50-200ms into the buffer, which has the obvious advantage that you'll be done mixing the audio by the time it's copied to the output stream.

What desmume does instead, is it fully generates the audio internally, then passes a fixed amount of data through to the sound module.
With a 44100 sample rate, it does this at a rate of 3 samples per horizontal line drawn.

This has absolutely nothing to do with my PC's specs, and everything to do with the person who wrote the code not doing a good job.
Go open up sndsdl.cpp and look for yourself at what it does - it's just a bit over 200 lines.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom