Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 15 von 38

Thema: MAME 0.113 und der Sound

  1. #1
    H@ckse Avatar von SailorSat
    Registriert seit
    26.08.2004
    Ort
    Hanau (Hessen)
    Beiträge
    2.060

    MAME 0.113 und der Sound

    Wah...
    Ich mein das Aaron ein Händchen dafür hat Sachen kaputt zu fixen ist ja nichts neues.
    Aber die neue Sound Engine ist ein Graus

    Pac-Man (und die anderen 60,60Hz Spiele) ist derzeit auf meinem CAB nicht ordentlich zu hören.
    Selbst mit Frameskip auf 1 oder Auto springt der Sound.

    Ich hab ihm zwar schon eine Mail geschrieben in der ich ihm ein paar Vorschläge mache wie man das Problem "elegant" löst, aber ob und wann er darauf eingeht ist ja immer so eine Sache...

    Gehen wir also davon aus unsere Emulation erzeugt bei 100% pro Sekunde 60,60 Bildern und 44100 Audiosamples.

    Das ganze wird über die Grafikkarte "ausgebremst" auf etwa 59,98 Hz Bildfrequenz.

    59,98 / 60,60 = ~0,98 = 98%

    Der derzeitige Fehler besteht darin, das der Ton weiterhin mit 44100Hz abgegriffen wird, wir aber bei 98% Emulationsgeschwindigkeit nur 43218 Audiosamples erzeugen.

    Da gibt es nun zwei Lösungen.

    Die erste wäre, am Host (also DirectSound unter Windows) die Samplerate auf eben 43218 zu senken. Das könnte allerdings zu Problemen mit Digitalen Abspielgeräten führen (z.B. einem Dolby 5.1 Verstärker).

    Die zweite wäre, in MAME einen Zwischenpuffer einzufügen der sich 43218 Audiosamples nimmt, und sie auf 44100 umrechnet.

    Ein schöner Vergleich ist, wenn ich eine Schallplatte "langsamer" abspiele.
    "Die mit dem Daytona" im Flipper- und Arcademuseum Seligenstadt/
    Ich mach das alles auch ohne Joystick ,)

  2. #2
    Registered User Avatar von Luigi
    Registriert seit
    29.03.2004
    Ort
    Neustadt/Wstr.
    Beiträge
    5.067
    Zitat Zitat von SailorSat Beitrag anzeigen
    Wah...
    Ich mein das Aaron ein Händchen dafür hat Sachen kaputt zu fixen ist ja nichts neues.
    Aber die neue Sound Engine ist ein Graus

    Pac-Man (und die anderen 60,60Hz Spiele) ist derzeit auf meinem CAB nicht ordentlich zu hören.
    Selbst mit Frameskip auf 1 oder Auto springt der Sound.

    Ich hab ihm zwar schon eine Mail geschrieben in der ich ihm ein paar Vorschläge mache wie man das Problem "elegant" löst, aber ob und wann er darauf eingeht ist ja immer so eine Sache...

    Gehen wir also davon aus unsere Emulation erzeugt bei 100% pro Sekunde 60,60 Bildern und 44100 Audiosamples.

    Das ganze wird über die Grafikkarte "ausgebremst" auf etwa 59,98 Hz Bildfrequenz.

    59,98 / 60,60 = ~0,98 = 98%

    Der derzeitige Fehler besteht darin, das der Ton weiterhin mit 44100Hz abgegriffen wird, wir aber bei 98% Emulationsgeschwindigkeit nur 43218 Audiosamples erzeugen.

    Da gibt es nun zwei Lösungen.

    Die erste wäre, am Host (also DirectSound unter Windows) die Samplerate auf eben 43218 zu senken. Das könnte allerdings zu Problemen mit Digitalen Abspielgeräten führen (z.B. einem Dolby 5.1 Verstärker).

    Die zweite wäre, in MAME einen Zwischenpuffer einzufügen der sich 43218 Audiosamples nimmt, und sie auf 44100 umrechnet.

    Ein schöner Vergleich ist, wenn ich eine Schallplatte "langsamer" abspiele.


    Bahnhof - Abfahrt - Gepäckträger

  3. #3
    Administration Avatar von zyx
    Registriert seit
    15.06.2004
    Ort
    Strass/Tirol
    Beiträge
    6.481
    naja man könnte sagen das ihm halt eine bessere emulation wichtiger ist als die spielbarkeit. bisher ist aber noch fast alles "gefixt" worden.

    @luigi: so schwer ist das jetzt aber auch nicht. Sailor hat ja extra für dich einen guten vergleich hinterlassen..
    Geändert von zyx (06-03-2007 um 15:42 Uhr)
    Alte Real Life Tetris (TM) Weisheit: Je schwerer das Cab, um so mehr Stiegen...

    Electricity is a vengeful bitch who is not to be trifled with

  4. #4
    Registered User Avatar von Luigi
    Registriert seit
    29.03.2004
    Ort
    Neustadt/Wstr.
    Beiträge
    5.067
    @zyx: ganz so blöd bin ich ja auch nicht, ich finds nur interessant, mit welch unterschiedlichen Sachen sich die Leute beschäftigen. Ich meine jetzt nicht Mame im Allgemeinen, sondern so die Feinheiten: Die einen überlegen sich, wie sie welche Controller am besten da verwenden können, andere beschäftigen sich mit der 100%-Emulation und den daraus resultierenden Problemen und deren Lösungen

  5. #5
    Multisync Candy Cab Owner Avatar von KoolKolo
    Registriert seit
    18.07.2004
    Ort
    Kiel
    Beiträge
    1.576
    Zitat Zitat von SailorSat Beitrag anzeigen
    Wah...

    Da gibt es nun zwei Lösungen.

    Die erste wäre, am Host (also DirectSound unter Windows) die Samplerate auf eben 43218 zu senken. Das könnte allerdings zu Problemen mit Digitalen Abspielgeräten führen (z.B. einem Dolby 5.1 Verstärker).

    Die zweite wäre, in MAME einen Zwischenpuffer einzufügen der sich 43218 Audiosamples nimmt, und sie auf 44100 umrechnet.

    Ein schöner Vergleich ist, wenn ich eine Schallplatte "langsamer" abspiele.
    Mame und der Sound, das war ja schon immer ein Problemkind.
    ich finde es sehr schade, daß das nun wieder so stiefmütterlich von den Mame Devs behandelt wird, denn ein ordentlicher Sound gehört ja noch immer dazu.
    100% Emulation, ja, aber bitte nicht mit 0% Spaß an der Joystick Front.

    Nr. 1 wird wohl nicht passieren und Nr.2 wohl nur mit einem ungeliebten "patch", der erst kommt, wenn genug Leute auch das Problem feststellen. da viele aber nicht wöchentlich upgraden wird das dauern

  6. #6
    Administration Avatar von zyx
    Registriert seit
    15.06.2004
    Ort
    Strass/Tirol
    Beiträge
    6.481
    ja dauern wirds sicherlich etwas, gerade beim sound der schlecht "emuliert" werden kann.. Aber ein Lösung wird sicherlich nachgeliefert...
    Alte Real Life Tetris (TM) Weisheit: Je schwerer das Cab, um so mehr Stiegen...

    Electricity is a vengeful bitch who is not to be trifled with

  7. #7
    H@ckse Avatar von SailorSat
    Registriert seit
    26.08.2004
    Ort
    Hanau (Hessen)
    Beiträge
    2.060
    Jau, und zwar von mir!
    Wenn auch nur unter Windows.

    Und zwar bedien ich mich einem relativ simplen Trick
    1 Zeile verändert, 2 Zeilen hinzugefügt.


    ---


    src\osd\windows\sound.c - Ab Zeile 188 hinzufügen
    Code:
    	IDirectSoundBuffer_SetFrequency(stream_buffer, Machine->sample_rate);
    Setzt regelmäßig (ich glaube jede volle Sekunde) die Abspiel-Frequenz des DirectSound Streams auf den Inhalt von "Machine->sample_rate".


    ---


    src\osd\windows\sound.c - In Zeile 381 ändern
    Code:
    	stream_desc.dwFlags = DSBCAPS_CTRLVOLUME | DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2;
    durch
    Code:
    	stream_desc.dwFlags = DSBCAPS_CTRLVOLUME | DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_CTRLFREQUENCY;
    Änder die Parameter des DirectSound Streams so, das man auch die Frequenz verändern kann.


    ---


    src\emu\video.c - In Zeile 1473 hinzufügen
    Code:
    		Machine->sample_rate = options_get_int(mame_options(), OPTION_SAMPLERATE) * global.speed_percent;
    Aktualisiert bei jeder vollen Sekunde den Wert in "Machine->sample_rate" mit dem Ergebniss der Sound-Frequenz in der mame.ini, multipliziert mit dem Prozentwert der Emulation (1.0 = 100%).


    ---


    Im Falle von Pac-Man (60,61Hz) wäre das bei exakt 60,00Hz Ausgabe wiefolgt.
    MAME.INI-Frequenz = 48000Hz
    Emulations-Prozent = 60Hz / 60,61Hz = 0,989 (98,9%)
    Machine->sample_rate = 48000Hz * 0,989 = 47472Hz

    Das bedeutet konkret das Pac-Man etwas langsamer abgespielt wird und tiefer klingt, was allerdings bei dem einen Prozent praktisch nicht auffällt.

    Nebenbei wird auch das Neo-Geo, das ja eigentlich 59.19Hz hat, etwas schneller abgespielt wird, und etwas höher klingt.
    60Hz / 59.19Hz = 1,013 (101,3%)
    48000Hz * 1,013 = 48624Hz

    Bei mir im Cab wird vorerst nur MAME mit eben diesem 3-Zeilen Hack laufen, damit der Sound perfekt synchron ist.
    Geändert von SailorSat (02-04-2007 um 03:30 Uhr)
    "Die mit dem Daytona" im Flipper- und Arcademuseum Seligenstadt/
    Ich mach das alles auch ohne Joystick ,)

  8. #8
    flying Mame Player Avatar von Nedo
    Registriert seit
    11.03.2004
    Ort
    Waldshut-Tiengen
    Beiträge
    270
    Da ich selber nicht MAME compiliere bleib ich vorerst bei 0.111
    bis sich da was tut, aber vielleicht kann mir aber jemand die
    Mame32 plus 0.113 mit Sailorsat's Hack compilieren ?
    wäre zu nett

  9. #9
    Registered User Avatar von Nitewing
    Registriert seit
    25.10.2006
    Ort
    Hildesheim
    Beiträge
    468

    Voll OffTopic, but...

    Sach mal Sailorsat,

    woher kannst du diesen ganzen Kram eigentlich? Is ja doch etwas "ungewöhnlich" das ein 24jähriges Mädel die meisten hier mit Technik- und Softwarewissen verwirrt... und dann auch noch mit Hand und Fuß...

    Stand da nicht was von Kauffrau in Deinem Profil?

    EIn verwirrter Nitewing mit noch verwirrteren Grüßen

  10. #10
    H@ckse Avatar von SailorSat
    Registriert seit
    26.08.2004
    Ort
    Hanau (Hessen)
    Beiträge
    2.060
    a) Weibliche Neugier
    b) Früh mit Hardwaregebastel angefangen (Null Modem Kabel für den Amiga iirc.)
    c) Zuviel Zeit
    d) Ehrgeiz

    Such dir was aus
    "Die mit dem Daytona" im Flipper- und Arcademuseum Seligenstadt/
    Ich mach das alles auch ohne Joystick ,)

  11. #11
    Retromaniker Avatar von Retrodreamer
    Registriert seit
    07.09.2005
    Ort
    37431 Bad Lauterberg
    Beiträge
    374
    Zitat Zitat von SailorSat Beitrag anzeigen
    a) Weibliche Neugier
    b) Früh mit Hardwaregebastel angefangen (Null Modem Kabel für den Amiga iirc.)
    c) Zuviel Zeit
    d) Ehrgeiz

    Such dir was aus

    einfach unglaublich
    Ich denke in 8 Richtungen


  12. #12
    Mr. Sülz Avatar von loray
    Registriert seit
    06.04.2006
    Ort
    am bayerischen Meer
    Beiträge
    3.125
    hmm... ich hab dbzgl. mit SDLMAME 0.113 noch nichts feststellen können - hab aber auch noch nicht wirklich Zeit gehabt weil ich mich mit QT4 rumärgere
    Denke mal die Soundumstellungen die ja ab 0.112 gemacht werden, werden sicher in den kommenden Versionen verbessert. Vom Grunde her wäre die Emulation ja auch so korrekt was die Töne betrifft etc.
    werden da High Scores gespeichert?

    Home of ZXMAMECD: http://www.zxmamecd.eu (Google+ http://gplus.to/ZXMAMECD)

  13. #13
    H@ckse Avatar von SailorSat
    Registriert seit
    26.08.2004
    Ort
    Hanau (Hessen)
    Beiträge
    2.060
    Wenn ich eine Schallplatte mit 75% abspiel wir der Ton langsamer und tiefer anstatt zu springen und sich zu wiederholen
    "Die mit dem Daytona" im Flipper- und Arcademuseum Seligenstadt/
    Ich mach das alles auch ohne Joystick ,)

  14. #14
    Mr. Sülz Avatar von loray
    Registriert seit
    06.04.2006
    Ort
    am bayerischen Meer
    Beiträge
    3.125
    nanana, wer wird denn gleich
    ehrlich gesagt hab ich es eben mal mit paar Games gecheckt, hab das Problem mit SDLMame nicht, wenn ich auf Frameskip "auto" schalte und mir werden immer schön 100% angezeigt. Werde das aber mal ausführlich abchecken.
    werden da High Scores gespeichert?

    Home of ZXMAMECD: http://www.zxmamecd.eu (Google+ http://gplus.to/ZXMAMECD)

  15. #15
    H@ckse Avatar von SailorSat
    Registriert seit
    26.08.2004
    Ort
    Hanau (Hessen)
    Beiträge
    2.060
    pfui deivel, auto frameskip
    Werd mir wohl doch mal SDLmame anschauen
    "Die mit dem Daytona" im Flipper- und Arcademuseum Seligenstadt/
    Ich mach das alles auch ohne Joystick ,)

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •