PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Magic MAME Stick



Linulo
11-01-2008, 14:17
Ein Artikel über Podslurping (http://de.wikipedia.org/wiki/Podslurping)hat mich auf eine Idee gebracht: Wie wäre es, wenn man einen USB-Controller, z.B. einen Competition Pro USB (http://de.wikipedia.org/wiki/Competition_Pro), nimmt und in ihn einen kleinen USB-HUB (http://www.logilink.org/showproduct/UA0038.htm) und einen USB-Stick einbaut. Damit könnte man verschiedene Dinge realisieren:

A) Auf den Stick einen fertig konfigurierten MAME32 und eine entsprechende AUTORUN.INF packen, so dass MAME direkt startet wenn man den Stick in einen Windows-PC steckt.

B) Ein komplettes bootfähiges Betriebssystem und MAME auf den Stick packen. Joystick rein, Rechner vom Stick booten, fertig.

zu A) Das ist technisch nicht weiter kompliziert. Außer der Hardware-Bastelei ist nur ein wenig Konfiguration nötig.

zu B) Diese Aufgabe ist wesentlich schwerer. Schön wäre, wenn das System sehr schnell und auf einer Vielzahl verschiedener Hardware booten würde. Ich habe Versusche mit DOS 7 und MAME 0.36 gemacht. Das bootet sehr schnell und man kann auch spielen. Aber die heute verbreiteten on-board-Soundkarten (VIA AC97, Realtek ALC850, ALC888) oder den USB-Joystick ans Laufen zu bringen ist hoffnungslos.

Um mit möglichst vieler unterschiedlicher Hardware klarzukommen wäre eher ein linux oder Windows 98SE geeignet. Windows hat (neben der Lizenz) das Problem, dass es sich schwer/nicht von USB booten lässt. Bei linux wäre die Frage, welches Grafiksystem man nimmt, svgalib (alt, schnell) oder ein nacktes X11 (groß, unterstützt praktisch alles).

Hat vielleicht jemand Erfahrungen oder Anregungen dazu?

loray
12-01-2008, 12:24
B) Ein komplettes bootfähiges Betriebssystem und MAME auf den Stick packen. Joystick rein, Rechner vom Stick booten, fertig.

zu B) Diese Aufgabe ist wesentlich schwerer. Schön wäre, wenn das System sehr schnell und auf einer Vielzahl verschiedener Hardware booten würde. Ich habe Versusche mit DOS 7 und MAME 0.36 gemacht. Das bootet sehr schnell und man kann auch spielen. Aber die heute verbreiteten on-board-Soundkarten (VIA AC97, Realtek ALC850, ALC888) oder den USB-Joystick ans Laufen zu bringen ist hoffnungslos.


guckst du hier auf meiner Projektseite von ZXMAMECD:
http://zxmamecd.worldofretro.net (http://zxmamecd.worldofretro.net/)

Einfach ISO saugen - USB-Install aufrufen - ZXMAMECD wird installiert etc. ab sofort kannst du von diesem USB-Stick dann SDLMAME, RAINE, ZSNES, STELLA und Atari800 starten bzw. ein Linux Betriebssystem mit autoconfig und dann den Emulator.

Linulo
12-01-2008, 13:56
Danke für den Link, das geht auf jeden Fall in die richtige Richtung :).

Eine Distro mit KDE ist aber leider viel zu groß. Ich möchte, dass der Spiel-PC nicht 2 Minuten zum Booten braucht sondern 20 Sekunden.

loray
12-01-2008, 14:04
Danke für den Link, das geht auf jeden Fall in die richtige Richtung :).

Eine Distro mit KDE ist aber leider viel zu groß. Ich möchte, dass der Spiel-PC nicht 2 Minuten zum Booten braucht sondern 20 Sekunden.

Ich hab die KDE packages abgespeckt - es sind nicht alle Pakete dabei und alles auf i686 optimiert.
Das Booten auf nem Duron 1200 und 512 MB dauert ca. 35 sek.
2 min.?!? - was hast du für nen Rechner? P2/400 mit 128 MB? :D
Probiers aus und dann schau weiter - hat halt den Vorteil, dass auch mehrere Emus drauf sind.

Falls dir das nicht gefällt versuch mal AdvanceCD
http://advancemame.sourceforge.net/ - das kannst du auch auf nen USB-Stick kopieren und davon booten. Ist kleiner, ca. 30 MB und sollte innerhalb deiner geforderten 20 sek. booten.
Hat allerdings den Nachteil, dass nur MAME dabei ist und nur bis zur 0.106 - aktuellere gibts mom. nicht.

Linulo
12-01-2008, 14:28
KDE und QT sind nunmal fette Pakete, für die viel mehr Bytes in den Speicher geladen werden müssen als für den Kernel und X11 alleine, auf dem auch schon alle Emulatoren laufen würden.

Leider werde ich wohl am WE nicht dazu kommen, aber nächste Woche werde ich etwas testen.

loray
12-01-2008, 18:11
KDE und QT sind nunmal fette Pakete, für die viel mehr Bytes in den Speicher geladen werden müssen als für den Kernel und X11 alleine, auf dem auch schon alle Emulatoren laufen würden.

Leider werde ich wohl am WE nicht dazu kommen, aber nächste Woche werde ich etwas testen.

klar sind die fett :D - nur mit X11 und Kernel alleine kommst du nicht weit ;)

KDE ist in der Bedienung sehr freundlich und auch Windows User können ZXMAMECD mit KDE ohne weiteres bedienen ohne gleich nen Linux Kurs absolvieren zu müssen.
Weitere Gründe sind die einfache Umsetzung der Mame Cab Steuerung, die über Gnome, XFCE etc. nicht so einfach geht. Die erste ZXMAMECD hatte XFCE dabei. Da leistungsfähige Rechner fast nichts Kosten und die meisten auch relativ gute Rechner haben, muss man auch nicht mehr dermassen resourcenschonend arbeiten sondern darf sich als Programmierer auch den einen oder anderen Luxus gönnen. Ein Mame Cab das man vielseitig einsetzen will sollte ja sowieso >1 GHz/512 MB haben und da spielen dann 30 MB hin oder her beim Laden wirklich keine Rolle.

Linulo
12-01-2008, 21:22
klar sind die fett :D - nur mit X11 und Kernel alleine kommst du nicht weit ;)
Warum nicht?


KDE ist in der Bedienung sehr freundlichKlar, ich benutz KDE täglich. Aber beim "Magic Stick" geht es nicht um "Bedienung". Das Ding soll so schlank wie irgend möglich werden, schnell booten und sich wie ein Gerät bedienen lassen, nicht wie ein Computer. Ich will den MAME irgendwie ans laufen kriegen, dann auf das Minimum herunterhungern und danach nicht mehr anfassen.

loray
13-01-2008, 12:40
ganz einfach, weil du fürs QMC2 Frontend z. B. QT brauchst, für SDLMAME die SDL Libs für andere Emus wieder was anderes, ATI- Nvidia driver usw... - und wenn du schreibst wie ein Gerät bedienen lassen, gehe ich davon aus du meinst die Cab Steuerung - das muss auch irgendwie verwirklicht werden etc...

Wenn du aufs Frontend verzichten willst, kannst du natürlich schon was superkleines Basteln, das auf nen 32 MB USB-Stick passt.
Die Bedienung ist dann allerdings mies.

Wie gesagt, wenn du was ganz Schlankes haben willst, weshalb nimmst du dann nicht AdvanceCD und klatscht das auf USB-Stick, fertig. Allerdings musst du dann mit Advancemame 0.106 leben. AdvanceCD wird eigentlich genau deinen Ansprüchen gerecht - bootet schnell, ist unkompliziert, hat Frontend dabei und kein KDE/Gnome oder anderes Desktop.

Andererseits, wenn du dich auskennst, kannst du meine Distribution auch nehmen und die KDE Packages entfernen, sowie alle anderen Emus, überflüssige Libs und fügst einfach XFCE hinzu. Das sollte dann so mit ca. 90-100 MB machbar sein.
Wenn du QMC2 als Mame Frontend verwendest, kommst du allerdings um die QT Libs 4.2.x nicht drumrum.

Linulo
13-01-2008, 15:05
ganz einfach, weil du fürs QMC2 Frontend z. B. QT brauchst, für SDLMAME die SDL Libs für andere Emus wieder was anderes, ATI- Nvidia driver usw...
Es gibt aber noch viele andere Frontends als QMC2 und SDL lib und Grafiktreiber haben nix mit KDE zu tun. Ein X.Org mit Unterstützung für die verbreitetsten Grakas reicht mir.


und wenn du schreibst wie ein Gerät bedienen lassen, gehe ich davon aus du meinst die Cab Steuerung - das muss auch irgendwie verwirklicht werden etc...Für den Anfang genügt es auch einfach, ein bestimmtes Spiel zu starten. Danach schau ich mich mal nach Frontends um. Wenn's keins geben sollte, kann ich auch eins selber schreiben. Ist ja nicht sooo schwer.


Die Bedienung ist dann allerdings mies.Das lass ich entweder weg (nur 1 Spiel) oder mit Joystick hoch/runter auf eine Textzeile. "Bedienung" würd ich das noch nicht nennen :p.


AdvanceCD wird eigentlich genau deinen Ansprüchen gerechtJo, herzlichen Dank für den Link :).

SailorSat
13-01-2008, 19:16
Hm..
Bzgl. DOS Lösung,
Ich hab seinerzeit AdvMAME (und AdvMENU) benutzt und den Sound auf "VSYNC\AC97" gestellt, das funktioniert mit 98% aller AC97 kompatiblen OnBoard Karten, dummerweise aber nicht mit den neueren "HD" Chipsätzen.

loray
14-01-2008, 06:34
Es gibt aber noch viele andere Frontends als QMC2 und SDL lib und Grafiktreiber haben nix mit KDE zu tun. Ein X.Org mit Unterstützung für die verbreitetsten Grakas reicht mir.
Für den Anfang genügt es auch einfach, ein bestimmtes Spiel zu starten. Danach schau ich mich mal nach Frontends um. Wenn's keins geben sollte, kann ich auch eins selber schreiben. Ist ja nicht sooo schwer.
Das lass ich entweder weg (nur 1 Spiel) oder mit Joystick hoch/runter auf eine Textzeile. "Bedienung" würd ich das noch nicht nennen :p.
Jo, herzlichen Dank für den Link :).

Die driver für NVidia/ATI hab ich in Verbindung mit der Größe der Distribution gebracht und nicht mit KDE ;)
SDL ist kein Frontend sondern heisst "Simple DirectMedia Layer" und ist eine freie Bibliothek, die eine Brücke zwischen Linux, Mac und Windows schlägt und eine einfache Portierung ermöglicht. Wenn du Linux einsetzt kommst du an SDL und den dazugehörigen Libs nicht drumrum - das wollte ich damit sagen. Nur für SDLMAME werden die Sources weiterentwickelt. Wenn du also aktuelle MAME Versionen willst in Verbindung mit Linux, musst du das auch verwenden, ansonsten musst du die Sources von AdvanceMAME oder XMAME verwenden bis 0.106.

Du willst selbst nen Frontend schreiben?!? Also jetzt bleib bitte mal realistisch ;)
Erstens, willst du den Schuh neu erfinden? Klar ist ein GUI nicht schwer, an was hast du da gedacht? QT, GTK, Swing, Tk? Zweitens ist der Programmieraufwand für einen MAME Frontend aber relativ hoch.
Es steckt ne Menge Zeit drin das aktuell zu halten, denn da ändert sich bei den options laufend was. Drittens musst du ne Cabsteuerung mit einbinden und und und... nicht umsonst gibt es so viele Frontend Projekte, die mit der Zeit eingestellt wurden.

Wie gesagt, ich würde dir, wenn du eine für dich speziell angepasste Version machen willst AdvanceCD empfehlen (sofern du mit Mame 0.106 reichst). Da kannst du auch AdvMenu rausnehmen und einfach über console nach dem Booten ein Spiel automatisch starten. Solltest du wirklich selbst einen kleinen Frontend basteln wollen, kannst du den dann auch anstatt AdvMenu starten.
Ich hatte das damals für meinen Ghost'n Goblins Arcade so gemacht. AdvanceCD über USB gebootet und dann automatisch Ghost'n Goblins gestartet, nach dem Beenden ein "shutdown" - ging ruck zuck und sollte auch nur dieses Spiel laden.

Linulo
14-01-2008, 06:45
SDL ist kein Frontend sondern heisst "Simple DirectMedia Layer" und ist eine freie Bibliothek, die eine Brücke zwischen Linux, Mac und Windows schlägt und eine einfache Portierung ermöglicht.Ich weiß :).


Wenn du Linux einsetzt kommst du an SDL und den dazugehörigen Libs nicht drumrum - das wollte ich damit sagen. Nur für SDLMAME werden die Sources weiterentwickelt.Kein Problem, dann muss SDL halt mit rein. Will ja auch nicht das Rad neu erfinden :). Andererseits reicht für das was ich vorhabe auch locker MAME 0.106.


Du willst selbst nen Frontend schreiben?!? Also jetzt bleib bitte mal realistisch ;)Wieso? Ich will nicht angeben, aber ich hab schon Schwierigeres programmiert :cool:.


Erstens, willst du den Schuh neu erfinden?Nein, auf keinen Fall. Ich bin mir sicher, dass ich eine Anzahl von geeigneten Frontends finden würde wenn ich genauer suchen würde.


Klar ist ein GUI nicht schwer, an was hast du da gedacht? QT, GTK, Swing, Tk?k.A., als erstes würde ich einen Blick auf TkInter und Python werfen. Oder einfach C mit wxwidgets.


Zweitens ist der Programmieraufwand für einen MAME Frontend aber relativ hoch.Nicht für das, was ich mir so vorstelle. Vier Grafiken, die man auswählen kann (am liebsten per Joystick, aber das muss nicht unbedingt sein) und dann wird eines von vier ROMs gestartet - Fertig. Mehr brauch ich nicht. Wirklich! :)

Zeit ist leider erst am nächsten Wochenende in Sicht, aber dann gibt's auf jeden Fall ein paar Versuche mit AdvanceCD. Ich freu mich schon drauf.

loray
14-01-2008, 09:12
Kein Problem, dann muss SDL halt mit rein. Will ja auch nicht das Rad neu erfinden :). Andererseits reicht für das was ich vorhabe auch locker MAME 0.106.
Wieso? Ich will nicht angeben, aber ich hab schon Schwierigeres programmiert :cool:.
k.A., als erstes würde ich einen Blick auf TkInter und Python werfen. Oder einfach C mit wxwidgets.
Nicht für das, was ich mir so vorstelle. Vier Grafiken, die man auswählen kann (am liebsten per Joystick, aber das muss nicht unbedingt sein) und dann wird eines von vier ROMs gestartet - Fertig. Mehr brauch ich nicht. Wirklich! :)


klar, wenn du nur 4 Games starten willst, hast du ruckzuck eine kleine GUI geschaffen, das ist wirklich kein grosser Aufwand :D - haben wohl aneinander vorbeigeredet, dachte du willst die ganzen Games unterstützen mit Configs, Iconset usw... :D
Dann würde ich wirklich abchecken ob die Games mit der 0.106 AdvanceCD einwandfrei laufen und die dementsprechend modifizieren und auf USB-Stick klatschen.
Eigentlich könntest du dann auch gleich das AdvMenu verwenden, das mit dabei ist und so einstellen, dass dir im tilemode die Bilder nur dargestellt werden - fertig.
Eine kleinere und bessere Lösung für diesen Zweck ist mir mom. nicht bekannt. Und bei dieser Lösung hat man auch noch sehr wenig Arbeit. Einzig die HDD müsstest du noch separat mounten etc., ggf. Hiscore Verzeichnisse anlegen usw.

http://advancemame.sourceforge.net/snap/cd-snap-2.png

Linulo
15-01-2008, 01:00
dachte du willst die ganzen Games unterstützen mit Configs, Iconset usw... :D
Wie soll ich das denn machen? Ich darf doch nur 2, 3 games legal nutzen :p.


Eigentlich könntest du dann auch gleich das AdvMenu verwenden, das mit dabei ist und so einstellen, dass dir im tilemode die Bilder nur dargestellt werden - fertig.
Jo, sieht supi aus.


Einzig die HDD müsstest du noch separat mounten etc., ggf. Hiscore Verzeichnisse anlegen usw.
Es gibt keine Platte. Ich werde ausschließlich auf den USB-Stick schreiben (wenn überhaupt).

loray
15-01-2008, 06:16
Wie soll ich das denn machen? Ich darf doch nur 2, 3 games legal nutzen :p.
Es gibt keine Platte. Ich werde ausschließlich auf den USB-Stick schreiben (wenn überhaupt).


ich weiss ja nicht, wieviele Lizenzen du hast :D
Na dann dürfen wir für kommendes WoEnde die ersten Berichte über deinen USB-Stick erwarten, oder? ;)

Linulo
15-01-2008, 11:22
Ich hoff's, ja.
Nochmal danke für die Anregungen.