HOW TO: gngeo2x (NEO GEO Emulator)


B4N5H33

Active Member
Joined
Feb 3, 2006
Messages
562
Location
Cologne - Germany
Website
Visit site
Hallo leute,

nach einem vorschlag von JohnDavidson habe ich mich dazu entschlossen, ein einsteigerfreundliches tutorial zu gngeo2x zu schrieben, da ich (und ich denke mal auch andere leute hier) einige probleme damit hatten, dem emu richtig ans laufen zu bringen. so kommt jeder in den genuß von neogeo-klassikern auf unserem lieblingsspielzeug...

okay, here we go: ich gehe beim tutorial mal vom spiel Metal Slug 1 aus, da ich davon das originalmodul zuhause habe (kein witz!). weiterhin bin ich ein windoof-only user, sodass das tutorial auf winxp zugeschnitten ist.

1.Schritt: installation

gngeo2x.zip in deinen bevorzugten ordner auf der sd-karte entpacken (<--- sehr aufmerksam nibel :D)

2.Schritt: gngeo2x_config anpassen

damit ihr auch in den genuss von einem fps-counter, einer niedrigeren samplerate (beschleunigt die emulation), etc. kommt, müsst ihr die "gngeo2x_config" noch etwas bearbeiten. einfach mit dem editor (winXP) öffnen, jetzt sucht ihr euch die kommandos aus, die ihr bevorzugt...


  • --autoframeskip Enable auto frameskip
    -c, --convtile Convert tile in internal format at loading
    --country=STRING Set the contry to japan, asia, usa or europe
    --forcepc Force the PC to a correct value at startup (may help some games)
    -H, --hwsurface Use hardware surface for the screen (allways true for the GP2X)
    -I, --interpolation Merge the last frame and the current
    --overclock=N Overclock the 68k by N%
    -P, --pal Use PAL timing (buggy)
    -r, --raster Enable the raster interrupt (for supersidekick 2, 3 and 4 for example)
    -i, --rompath=STRING Use STRING as rom path
    -d, --romrc=STRING Use STRING as romrc file
    -d, --romrcdir=STRING Use STRING as romrc.d directory
    --sound Enable sound
    --showfps Show FPS at startup
    --sleepidle Sleep when idle
    --screen320 Use 320x224 output screen (instead 304x224)
    --system=STRING Set the system to home, arcade or unibios
    --samplerate=N Set the sample rate to N
    -t, --transpack=STRING Use the specified transparency pack

so..ein beispiel: wenn ihr gngeo2x mit sound, einer samplerate von 11025 und dem fps-counter starten wollt, fügt folgende zeile in die "gngeo2x_config" ein:
Code:
cmdLine=./gngeo --sound --samplerate=11025 --showfps

wenn ihr später den emu startet, einfach auf "Y" drücken, bis die gewünschte zeile am unteren bildschirmrand steht und den emu starten

3.Schritt grafik dumpen

Damit manche roms - besonders die größeren (<15-20 mb) - in gngeo2x geladen werden können, sollte man die grafikdateien der roms dumpen. bei metal slug 1 ist das zwar nicht unbedingt nötig, (da es beim starten keinen geschwindigkeitszuwachs bringt) aber ich führe es mal exemplarisch vor. das geht mit folgendem nützlichen tool hier.

jetzt entpackt ihr den inhalt, wohin ihr wollt - bei mir auf den desktop -
und kopiert das gewünschte rom in den selben ordner (in meinem fall mslug1.zip)

nun öffnet ihr die kommandozeileneingabe (heisst das wirklich so?!) von windows (start>ausführen>cmd eingeben) und geht in den entsprechenden ornder: also "cd desktop" und dann "cd dumpgfx_win". wenn ihr nun im richtigen Ordner seid, kann´s losgehen:

"dumpgfx mslug1.zip" eingeben und sekunden später erscheint die datei mslug1.gfx. soooo..

4.Schritt: roms und bios kopieren

jetzt kopiert ihr die beiden dateien mslug1.zip und mslug1.gfx in den unterordner "roms" von gngeo2x...jetzt fehlt nur noch das neogeo-bios (von mame nicht neoragex) welches ihr euch selbst besorgen müsst (google hilft :wink: ). das entsprechende bios entpackt ihr ebenfalls in den unterordner roms. das neogeo bios sollte folgende dateien enthalten:

000-lo.lo
asia-s3.rom
sfix.sfx
sm1.sm1
sp-e.sp1
sp-j2.rom
sp-s.sp1
sp-s2.sp1
usa_2slt.bin
vs-bios.rom

5.Schritt emu starten!

so, da jetzt alles nötige erledigt ist, könnt ihr den emu starten ("Y" drücken nicht vergessen) und euer bevorzugtes spiel genießen.

6.Schritt emu beenden

das geht mit der rechten schultertaste + druck auf den stick

Ich hoffe, dass das Tutorial einigen von euch geholfen hat und das es nicht zu unverständlich geschrieben ist...falls noch fragen/anregungen/kritik besteht, einfach posten

vielen dank an pepone für diesen großartigen EMU


gruß

B4N5H33
 
Muss nab das zip wirklich nur auf die sd kopieren und nicht entpacken nanana, da hast du wohl geschlust.
 
"wenn man keine ahnung hat, einfach mal fresse halten"
- Dieter Nuhr

WAR´N SCHERZ - danke für die konstruktive kritik :wink:

also bei mir muss ich das zip nicht entpacken (ich geh mal davon aus, das du das mslug1.zip meinst)...oder welches?

gruß

B4N5H33
 
Ich dachte schon du stellst meine auditiven Fähigkeiten in Frage^^.
 
Hm ... man könnte das alles noch um das Universalbios erweitern ... da kannst du eigentlich den Krams den ich irgendwann geschrieben hab cpn.
Eine kleine Miniergänzung kann man zum GFXdumpen machen ... Dumpfiles bei Spielen die komplett in den RAM passen werden einfach nicht geladen. Sollte man die anlegen wollen, damit die Spiele schneller booten, so ist das nicht möglich.
Weiterhin kann man noch das schreiben von spielespezifischen Config-Files mit einfügen. Noch werden die meisten Funktionen der Config-Files nicht eingelesen, das sollte sich aber in der nächsten Version ändern.

Insgesamt ist die jetzige Anleitung aber schon sehr stimmig und gut :)
 
danke, ich wollt gerade die von dir angesprochenen punkte ändern, als mir aufgefallen ist, dass ich meinen beitrag gar net mehr bearbeiten kann :twisted: (jetz hats mich auch erwischt, nibel :lol: )

gruß

B4N5H33
 
Hi, Leute! Ich hätt da ein Problem:Ich habe mit dem von B4N5H33 vorgeschlagenen Tool versucht die gfx datein von mslug1,2,3,4,5 und X zu dumpen, bei mslug1,2 und X hatt´s auch gefunzt, aber bei den anderen krieg ich´s einfach nicht hin. Bei der cmd eingabe steht dann immer: Couldn´t load
mslug3.zip(bzw. mslug4,5 oder X). Kennt sich irgendwer damit aus?
 
Bei mslug 1 und 2 brauchst du das Tool nicht ... der läd die Dateien dann eh nicht.
Wenn das Tool "Couldn´t load" ausgibt, solltest du mal gucken, ob deine ROM-Files in den Zip-Dateien richtig benannt sind. Nim die romrc als anhaltspunkt, wie die roms zu heißen haben (ist im Verzeichnis vom dump-tool).
 
Apropo wo bekomm ich die romrc daten her?
Ich hab nen Spiel das nicht eingetragen sind.
 
hi...wie god_at_hell schon gesagt hat: öffne die romrc-datei mit dem editor und vergleich die namen der einzelnen files im zip-archiv z.b. mslug3.zip

hier der entsprechende auszug aus dem romrc:


Code:
<i>
</i>game mslug3n MVS_CMC42 "Metal Slug 3 (Encrypted GFX)"
SFIX 0x80000
END
SM1 0x80000
256-m1.bin 0x0 0x80000 NORM
END
SOUND1 0x1000000
256-v1.bin 0x0 0x400000 NORM
256-v2.bin 0x400000 0x400000 NORM
256-v3.bin 0x800000 0x400000 NORM
256-v4.bin 0xc00000 0x400000 NORM
END
CPU 0x500000
256-ph1.rom 0x0 0x100000 NORM
256-ph2.rom 0x100000 0x400000 NORM
END
GFX 0x4000000
256-c1.bin 0x0000000 0x800000 ALTERNATE
256-c2.bin 0x0000001 0x800000 ALTERNATE
256-c3.bin 0x1000000 0x800000 ALTERNATE
256-c4.bin 0x1000001 0x800000 ALTERNATE
256-c5.bin 0x2000000 0x800000 ALTERNATE
256-c6.bin 0x2000001 0x800000 ALTERNATE
256-c7.bin 0x3000000 0x800000 ALTERNATE
256-c8.bin 0x3000001 0x800000 ALTERNATE
END


so...wenn die dateien jetzt nicht 256-xx.bin heißen, benennst du sie entsprechend um und *zack* er erkennt sie beim nächsten versuch! falls nicht, hast du das falsche rom! (es gibt verschiedene versionen von allen mslug-teilen: encrypted, decrypted, etc...)

Übrigens: Metal Slug 4 ist nicht im romrc zu finden, d.h. wird immo nicht supportet! nibels frage, wo man eine aktuelle romrc herbekommt interessiert mich übrigens auch brennend!!!


B4N5H33


ps: PLIES! :p
 
Die Daten bekommt man eingentlich recht einfach. Die namen sollten klar sein. Ein Spiel besteht immer aus einem Satz C, V und P Dateien. Die M1 Datei ist eigentlich immer dabei und die S1 fast immer.

Die Treiber bekommt ihr von Nebula. Holt euch den Emu und eventuell passende DATs und verändert die so, dass sie in die romrc passen. Der Treiber für MetalSlug 4 sieht z.B. so aus:
Code:
System: NEO
RomName: mslug4
Game: Metal Slug 4

[Program]
263-p1.bin,0,100000,27e4def3,0
263-p2.bin,100000,400000,FDB7AED8,0

[Z80]
263-m1.bin,0,10000,38FFAD14,0
263-m1_decrypted.bin.bin,0,10000,0c4c42f8,0

[Samples]
263-v1.bin,0,800000,01e9b9cd,0
263-v2.bin,800000,800000,4ab2bf81,0

[Graphics]
263-c1.bin,0,800000,84865F8A,0
263-c2.bin,1,800000,81DF97F2,0
263-c3.bin,1000000,800000,1A343323,0
263-c4.bin,1000001,800000,942CFB44,0
263-c5.bin,2000000,800000,A748854F,0
263-c6.bin,2000001,800000,5C8BA116,0

[System]
CartridgeID: 263
GfxCrypt: 2
GfxKey: 31
PCM2: 1
ButLayout: 9
Fix: 1b
 
..also ich hab mir die enträge von der "romrc" und der "neogeo.dat" mal genauer angesehen und muss sagen, dass ich da nicht wirklich durchblicke. besonders im direkten vergleich!

hier ein auszug:

ROMRC
Code:
<i>
</i>CPU 0x200000
201-p1.bin 0x100000 0x100000 NORM
- 0x0 0x100000 NORM

NEOGEO.DAT
Code:
<i>
</i>[Program]
201-p1.bin,100000,200000,8D8DAA5,1

woher bekommen ich die angabe NORM/ALTERNATE? in welcher reihenfolge übertrage ich die 0x000000 - zahlen (k.a. was die bedeuten)? Ist die "8D8DAA5" die crc der 201-p1.bin? und warum ist die nicht im romrc? fragen über fragen!!!

wäre echt nett von dir, wenn du den "angepassten" code der romrc für mslug4 mal hier posten könntest, damit ich nen weiteren anhaltspunkt hab bzw. den code gleich bei mir einfügen kann (bin nämlich lazy heute)

gruß

B4N5H33
 
Es sei schonmal gesagt, dass ich nicht weiß, ob dieser Treiber funktioniert, da ich das nicht testen kann:
Code:
game mslug4 MVS "Metal Slug 4" 
CPU 0x500000 
263-p1.bin 0x0 0x100000 NORM
263-p2.bin 0x100000 0x400000 NORM
END 
SM1 0x10000 
263-m1_decrypted.bin 0x0 0x10000 NORM
END 
SOUND1 0x1000000 
263-v1.bin 0x0 0x800000 NORM
263-v2.bin 0x800000 0x800000 NORM
END 
GFX 0x3000000 
263-c1.bin 0x0000000 0x800000 ALTERNATE
263-c2.bin 0x0000001 0x800000 ALTERNATE
263-c3.bin 0x1000000 0x800000 ALTERNATE
263-c4.bin 0x1000001 0x800000 ALTERNATE
263-c5.bin 0x2000000 0x800000 ALTERNATE
263-c6.bin 0x2000001 0x800000 ALTERNATE
END

Zum Format:
Code:
263-c6.bin 0x2000001 0x800000 ALTERNATE
So steht es in der romrc. Die erste Hexadresse gibt den Startpunkt im Speicher an. Die zweite die Größe des Roms.
Code:
263-c6.bin,2000001,800000,5C8BA116,0
und so steht es in der Treiberfile von Nebula. Alles nach der Romgröße kann man abschneiden, da kein CRC-Check vorgenommen wird. Die stehenbleibenden Hexwerte sind wieder Startpunkt und Größe .. man muss nur noch ein 0x davorsetzen.

Die Werte für die Blockgröße
Code:
GFX 0x3000000
bekommt man indem man die Roms zusammenzählt. Hier guckt man sich einfach den Startpunkt des letzten Roms und seine Größe an und trägt das dementsprechend ein ... das sollte eigentlich gehen.

Mit diesem Wissen kann man eigentlich auch ohne Nebulatreiber seine ROMRC füllen, indem man sich nur die Romgrößen anguckt, alltedings kann es dann zu Problemen kommen, wenn man ein Overdump hat, da man hier Wertlose Daten miteinliest und den Emu durcheinander bringen kann. Das sollte aber nur bei sehr neuen Roms von Bootleg-Versionen passieren.
 
Back
Top