NeoGeoX Hacking and Mods

BloodShed

New Challenger
Joined
Dec 26, 2012
Posts
51
Can anyone tell me why you guys need to use a microSD card instead of ust a regular SD card?
The idea is simply to swap the data pins.

The official Ninja Master's game card is stored using a swapped data structure and the Neo Geo X won't read it otherwise (I assume the pinout is swapped on the card reader of the Neo Geo X as well. This "adapter" will allow the Neo Geo X to read standard microSD card data. The only reason it's a microSD is so the whole thing can fit inside.
 

nerdstick

Crossed Swords Squire
Joined
Oct 1, 2012
Posts
183
Personally I think a firmware swap is the best route, opens up far more options.

To mount a dd .img backup of the internal SD in Ubuntu:
1) In Terminal, use 'fdisk -lu ".img location"' to scan the file's partition table (ex. sudo fdisk -lu /home/ubuntu/Desktop/internal.img) (Don't use spaces in filename)
2) The partitions will be listed (img1/img2/img3/img4) with Start values. To mount a partition, take it's Start value and multiply it by the sector size, then run 'sudo losetup -o 'number' /dev/loop1 "imagefile" (ex. Start value of 24576, sector size 512) (sudo losetup -o 12582912 /dev/loop1 /home/ubuntu/Desktop/internal.img)

That'll mount the partition, then you repeat for any subsequent partitions. To unmount:
3) Run 'sudo umount /dev/loop1' then 'sudo losetup -d /dev/loop1'

Going to take the advice on swapping in the other firmware now :)
 

ack

Ninja Combat Warrior
15 Year Member
Joined
Apr 9, 2009
Posts
538
Personally I think a firmware swap is the best route, opens up far more options.

To mount a dd .img backup of the internal SD in Ubuntu:
1) In Terminal, use 'fdisk -lu ".img location"' to scan the file's partition table (ex. sudo fdisk -lu /home/ubuntu/Desktop/internal.img) (Don't use spaces in filename)
2) The partitions will be listed (img1/img2/img3/img4) with Start values. To mount a partition, take it's Start value and multiply it by the sector size, then run 'sudo losetup -o 'number' /dev/loop1 "imagefile" (ex. Start value of 24576, sector size 512) (sudo losetup -o 12582912 /dev/loop1 /home/ubuntu/Desktop/internal.img)

That'll mount the partition, then you repeat for any subsequent partitions. To unmount:
3) Run 'sudo umount /dev/loop1' then 'sudo losetup -d /dev/loop1'

Going to take the advice on swapping in the other firmware now :)

There is an easier way then this if you have kpartx installed.

Code:
# ls -l
total 1931264
drwxr-xr-x 2 root root          6 Jan  1 11:20 appfs
drwxr-xr-x 2 root root          6 Jan  1 11:20 cfgfs
-rw-r--r-- 1 root root 1977614336 Jan  1 11:19 internal-ngx-rzx.img
drwxr-xr-x 2 root root          6 Jan  1 11:20 otherfs
drwxr-xr-x 2 root root          6 Jan  1 11:20 rootfs

# losetup -v -f internal-ngx-rzx.img 
Loop device is /dev/loop0

# kpartx -v -a /dev/loop0
add map loop0p1 (252:2): 0 983040 linear /dev/loop0 24576
add map loop0p2 (252:3): 0 266240 linear /dev/loop0 1007616
add map loop0p3 (252:4): 0 40960 linear /dev/loop0 1273856
add map loop0p4 (252:5): 0 2097152 linear /dev/loop0 1314816

# mount /dev/mapper/loop0p1 rootfs
# mount /dev/mapper/loop0p2 appfs
# mount /dev/mapper/loop0p3 cfgfs
# mount /dev/mapper/loop0p4 otherfs

To clean up after you have done whatever and umount'd.

Code:
# kpartx -v -d /dev/loop0
del devmap : loop0p4
del devmap : loop0p3
del devmap : loop0p2
del devmap : loop0p1
# losetup -d /dev/loop0
 

nerdstick

Crossed Swords Squire
Joined
Oct 1, 2012
Posts
183
You need to make an image that contains the ngx's uboot and kernel and the RZX-50's userspace (rootfs/appfs/cfgfs). That by itself should make it bootable, but you will want to make the following changes to the userspace first.

I'd ask for a bit more of layman's terms (I plopped the vmlinux/rootfs files on the 503MB volume and replaced \ with a renamed opendingux.dge..resulting in nothing it seemed, way off I imagine), but it likely went so far over my head it'd still be too much. Though considering I lacked appfs and cfgfs perhaps I've been working with the wrong files, specifically 'opendingux-rzx50-20120331.tar.gz'. Not that I'm sure what the uboot or kernel is either..

If you or anybody else shared a finished image, not only would my efforts be redundant but wouldn't it allow anybody with a 370 (or even those unable to use Linux) to get the firmware swap despite not being able to access the inner storage? Don't know if anybody with a 370 has tried the usbtool yet.
 
Last edited:

ack

Ninja Combat Warrior
15 Year Member
Joined
Apr 9, 2009
Posts
538
I'd ask for a bit more of layman's terms (I plopped the vmlinux/rootfs files on the 503MB volume and replaced \ with a renamed opendingux.dge..resulting in nothing it seemed, way off I imagine), but it likely went so far over my head it'd still be too much. Though considering I lacked appfs and cfgfs perhaps I've been working with the wrong files, specifically 'opendingux-rzx50-20120331.tar.gz'. Not that I'm sure what the uboot or kernel is either..

You want http://www.ritmixrussia.ru/static/downloads/FW/RZX/RZX-50/RZX-50_fw_121126.rar, its the official firmware from the manufacture.

I am recalling this from memory, but it should basicly be:

- take your stock ngx image and mount the root/app/cfg filesystems^1
- mount the filesystems in the above rar file too
- rsync the rzx filesystems over the ngx filesystems (ie: rsync -avr --delete rxz-rootfs/ ngx-rootfs/)
- do the above tweaks I talked about with the dmenu.ini/inittab/udc_monitor/dmenu_lock.ini stuff
- write image

[1] you may need to mkfs.ext3 the root/app/cfg filesystems on the ngx image first. I seem to remember there being a few issues, like the appfs not having enough inodes and filesystem corruption on the cfgfs.

If you or anybody else shared a finished image, not only would my efforts be redundant but wouldn't it allow anybody with a 370 (or even those unable to use Linux) to get the firmware swap despite not being able to access the inner storage? Don't know if anybody with a 370 has tried the usbtool yet.

I am unsure if its safe to write any existing firmware to the 370. The jz4770 supports both SD and NAND as the internal storage and I am unclear which one that chip maps to. I am pretty sure the SD and NAND boot loaders aren't the same.

On a side note I probably wont be doing any more poking on the ngx until the firmware/source for the GCW Zero comes out, which is based on the exact same chip and is suppose to be open source.

-ack
 
Last edited:

cabear

n00b
Joined
Oct 26, 2009
Posts
37
Someone uploaded a Youtube video today showing them playing KOF '98 on the Neo Geo X using Unibios. No mention on how he did it, except he uses an external SD card.

pretty sure the file system for ninja masters was copied and roms added to the external sd card to add more games.

the info is in the thread but since i have a 370 i'll be waiting awhile to see how the internal changed memory is written to and handled.
 

FA-MAS

Kula's Candy
Joined
Oct 3, 2009
Posts
299
I must be doing something wrong. I've got an SD adapter setup. I can read the ninja masters card. I took an image of it.

My problem is when I try to write it to another card. It tells me the file system is read only. Well whatever file system was on the card isn't readable cause everything's backwards. Should I be able to write the image back?
 

ack

Ninja Combat Warrior
15 Year Member
Joined
Apr 9, 2009
Posts
538
I must be doing something wrong. I've got an SD adapter setup. I can read the ninja masters card. I took an image of it.

My problem is when I try to write it to another card. It tells me the file system is read only. Well whatever file system was on the card isn't readable cause everything's backwards. Should I be able to write the image back?

Maybe you damaged the read-only/read-write slider or have it in the wrong orientation on your adapter?

-ack
 

FA-MAS

Kula's Candy
Joined
Oct 3, 2009
Posts
299
yeah, i figured it out. I'm actually using a full sized SD slot cannibalized from another card reader. I hadn't hooked those pins up. Now it's good.
 

xarcade

Quiz Detective
Joined
Dec 3, 2009
Posts
86
So your saying DAT1 on the SD adapter to DAT2 of the micro SD contacts, and DAT0 on the SD adapter to DAT3 of the micro SD contacts?

Also, I used this reference:
sd-card-pinout.png

Like NeoTurfMasta and ack said, you need to swap DAT1 with DAT2 and DAT0 with DAT3.
 

BloodShed

New Challenger
Joined
Dec 26, 2012
Posts
51
So your saying DAT1 on the SD adapter to DAT2 of the micro SD contacts, and DAT0 on the SD adapter to DAT3 of the micro SD contacts?
Yes. Like so:

SD side -> microSD side
DAT0 -> DAT3
DAT1 -> DAT2
DAT2 -> DAT1
DAT3 -> DAT0

adapterq.jpg
 

werejag

Galford's Poppy Trainer
Joined
May 3, 2005
Posts
2,626
where did the base images for this sd adapter come from these are fantastic quality
 

xarcade

Quiz Detective
Joined
Dec 3, 2009
Posts
86
What is pin 2 on the SD adapter used for in relation to the micro SD card?

And can the NGX recognize SDXC cards; or only SD and SDHC?
 
Last edited:

nerdstick

Crossed Swords Squire
Joined
Oct 1, 2012
Posts
183
Here's a reference I wrote up so I don't have to keep going between the folders:

game1 = World Heroes Perfect = whp.fba
game2 = 3 Count Bount = 3countb.fba
game3 = Real Bout = rbffspec.fba
game4 = Puzzled = puzzled.fba
game5 = Nam-1975 = nam1975.fba
game6 = Mutation Nation = mutnat.fba
game7 = Last Resort = lresort.fba
game8 = King of the Monsters = kotm.fba
game9 = Alpha Mission II = alpham2.fba
game10 = Cyber-Lip = cyberlip.fba
game11 = Fatal Fury Special = fatfursp.fba
game12 = Art of Fighting = aof.fba
game13 = Super Sidekicks = ssideki.fba
game14 = League Bowling = lbowling.fba
game15 = Metal Slug = mslug.fba
game16 = Magicial Lord = maglord.fba
game17 = Baseball Stars 2 = bstars2.fba
game18 = Samurai Shodown II = samsho2.fba
game19 = King of Fighters 95 = kof95.fba
game20 = Fatal Fury = fatfury1.fba

fyi: Removing any of the game images seems to make the system completely lock up (and continuously change brightness, oddly). I was curious if you could only have a few games load on the menu, but it appears not! Haven't tried modifying the config file for images, though.
 
Top