MPU401: Intelligent Mode per Software emulieren?

Konfiguration, Anwendungen, Treiber und TSRs unter DOS
Antworten
Benutzeravatar
CptKlotz
Admin a.D.
Beiträge: 2405
Registriert: Mo 7. Mär 2005, 23:36
Wohnort: Dorsten
Kontaktdaten:

MPU401: Intelligent Mode per Software emulieren?

Beitrag von CptKlotz »

Hallo,

ich hatte es ja im anderen Thread schon einmal angeschnitten:

Ich frage mich, ob man den "intelligent mode" eines Roland-MPU401-Interfaces per Software emulieren könnte.

Wikpedia sagt zu MPU-401 folgendes:
Die MPU-401 kann in zwei Modi arbeiten: Normal und UART. Im Normalmodus stehen dem Hostsystem Dinge wie ein 8-Spur-Sequenzer, ein Metronom oder die Ausgabe von Synchronisationsimpulsen zur Verfügung; wegen dieser Leistungsmerkmale wird der Normalmodus oft auch als „intelligenter Modus“ bezeichnet, im Gegensatz zum UART-Modus, welcher die MPU-401 darauf reduziert, ein- und ausgehende MIDI-Datenbytes weiterzuleiten.

Dadurch, dass die Rechner immer leistungsfähiger wurden, sind die Möglichkeiten des „intelligenten Modus“ überflüssig geworden, da es effizienter wurde, sie durch entsprechende Softwareroutinen bereitzustellen. Somit wurde der UART-Modus vorherrschend, was soweit ging, dass die meisten kompatiblen Karten (z. B. Sound Blaster 16) den „intelligenten Modus“ überhaupt nicht mehr unterstützen.]}

Wenn es also nun problemlos per Software möglich ist, diese Funktionalität bereitzustellen, könnte man dann ein TSR schreiben, welches die MIDI-Port-Zugriffe "abfängt" und einem Spiel die "intelligente" Funktionalität zur Verfügung stellt und dann die gespielten Noten an ein "dummes" MPU-Interface weiterleitet, wie es die meisten Soundkarten haben?

Müßte man für emuliertes und echtes MPU-Interface dann verschiedene Ports haben, meinetwegen Port 330 emuliert, weitergeleitet an echten Port 300?

Könnte soetwas funktionieren oder geht es mit einem "dummen "MPU wirklich nur dann, wenn man die betreffende Software patcht? Viel mehr als ein Taktsignal wird das MPU für Spiele doch wahrscheinlich nicht bereitstellen müssen, oder?

[Ironie]
Na, liebe Hardcore-Coder, klingt das nicht nach einem faszinierenden Projekt?

Ja, EUCH meine ich... Die Leute, in deren Adern pures Koffein fließt, die das Tageslicht nur noch vom Hörensagen kennen und die in der Matrix den Code schon gar nicht mehr sehen :-)
[/Ironie]

Ok, der potentielle Nutzerkreis wäre vermutlich nicht riesig. Im Wesentlichen wäre das was für Leute, die ein MT-32 (o.Ä.) und ein gutes MPU-Interface haben, das aber eben nur den UART-Modus beherrscht. Soundblaster-Besitzern würde es evtl. nicht viel bringen, weil vielleicht auch dabei wieder die beliebten "hängenden Noten" auftreten würden.

Wieviele Spiele gibt es eigentlich, die auf einem intelligenten MPU bestehen?

Ich werfe mal Wing Commander 1 + 2 in die Runde. Kann man bei Sierra alles patchen?

Gruß,
Stephan
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
freecrac
DOS-Guru
Beiträge: 836
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: MPU401: Intelligent Mode per Software emulieren?

Beitrag von freecrac »

Hallo Stephan,
CptKlotz hat geschrieben:
Wenn es also nun problemlos per Software möglich ist, diese Funktionalität bereitzustellen, könnte man dann ein TSR schreiben, welches die MIDI-Port-Zugriffe "abfängt" und einem Spiel die "intelligente" Funktionalität zur Verfügung stellt und dann die gespielten Noten an ein "dummes" MPU-Interface weiterleitet, wie es die meisten Soundkarten haben?
Portzugriffe kann man nur im Protected Mode(PM) abfangen. Im Realmode gibt es keine Möglichkeit dazu. So ein TSR müsste sich also ständig im PM befinden und kommt dabei allen Memorymanager ala emm386.exe in die Quere.
Ich selber habe so etwas noch nie gemacht. Auch habe ich weder eine MIDI-fähige Soundkarte, noch mich je mit MIDI beschäftigt.

Bei der Suche nach "Portzugriffe abfangen" fand ich diese Seiten:
http://www.heise.de/ct/artikel/HardBreaker-283750.html

Windows-Programmierung:
LPTDAC-VxD, emuliert eine SoundBlaster und stellt eine einfache generelle API zur Verfügung.
http://www-user.tu-chemnitz.de/~heha/vi ... LPTDAC.ASM

Hier habe ich "intercepting port access" gesucht:
http://www.beyondlogic.org/porttalk/porttalk.htm

Dirk
Benutzeravatar
CptKlotz
Admin a.D.
Beiträge: 2405
Registriert: Mo 7. Mär 2005, 23:36
Wohnort: Dorsten
Kontaktdaten:

Re: MPU401: Intelligent Mode per Software emulieren?

Beitrag von CptKlotz »

Ok, das würde dann wohl bedeuten, daß man das gleiche Problem hätte wie mit dem AWEUTIL der AWE, wenn es versucht, General MIDI zu emulieren. Das funktioniert ja auch nicht mit Software, die im Protected Mode läuft.

EMM386 ist wiederum hilfreich für ältere Spiele, weil es hilft, ordentlich konventionellen Speicher freizuschaufeln. Ansonsten könnte man vielleicht noch mit UMBPCI arbeiten oder so.


Vielleicht ist das ja auch eine blöde Idee und man würde die Spiele besser patchen.
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
Antworten