Question About Neo Geo Mvs Emulation


icurafu posted on Oct 30 2005 at 10:37 PM said:
From what I understood, most of the later neogeo games only loaded from the cart between levels, because devs wanted the game to run on both CDs and cartreges. And because the CDrom was only ever 1x, it could only be done between levels, or else the game would onyl be available for the cartrege.

So, even if the game is too big for the 64meg of ram, then it must have been released after the NeoGeo CD, and thus would be designed to load like a CD. Thus it needs to fit on the 7MB of ram on the NeoGeos.

That seemed very sensible when I first read it, but upon thinking a little more I remembered that the NeoGeo has a very tiny amount of RAM, so what exactly would it be loading the cartridge too?

NeoGeo RAM Breakdown:
Work RAM: 64 KB
Video RAM: 68 KB
Z80 RAM: 2 KB

Certainly it makes sense that in later NeoGeo games the developers would make the game planning for its eventual conversion to NeoGeoCD but I don’t think it could have possibly been done in the manner you’re implying. I think it’s more likely they just made sure that all the resources needed for any given segment of a game never exceeded the size of the NeoGeoCD’s cache thus limiting the number of loads for a given segment of a game to 1. So in the MVS version of the game it would still randomly access the cartridge but the total amount of data accessed would be small enough to fit into the cache of the CD versions of the console. I don’t see this as helping us emulate the MVS any better though since we won’t be able to predict what parts of the cartridge will be used in advance, but it does reinforce the fact that wel all already knew; that the MVS never needed fast access to all of it’s cart at any given time.
 
Last edited by a moderator:
Cahaz posted on Oct 30 2005 at 09:10 PM said:
with a method or another, it doesn't mather. I just hope we'll be able to play every MVS games we want...

Do this, online matchs support , a chatbox, DOSbox and some pc conversions and i'm in heaven.

:)


I somehow think DosBox is a bit far fetched. It's REALLY slow, especially on non-X86 hardware. Try it on a mac sometime and feel my pain =/

-OCA|
 
Last edited by a moderator:
The biggest unknown I still currently have with this is how low does the latency need to be for the NeoGeo to be happy? When people made bootlegs of the MVS carts using EPROMS what was the latency like on those chips? I haven’t been able to find any information about it online so far, but it at least gives me some hope that we have some room to work with.

Putting together another idea that’s been floated it looks like Predictive Caching with RAM Compression is currently the best solution we can come up with for getting those big Neo Geo MVS games working. So I think the end product would have to do the following.

Compress the contents of ram sacrificing latency and cpu time for storage. Ideally the process of managing the compressed memory would be implemented as a separate thread to take advantage of the GP2X’s dual core design.

Predictably load and release parts of the NeoGeo’s rom to and from RAM. Something as simple as proximity should be effective enough for this to work since the data on the cartridge is stored in a somewhat logical manner. What I mean by this is a system like the following, picture the alphabet as the entire contents of the ROM. If we need Q, W, and C you would get something like the following:

SD: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
RAM: A B C D E O P Q R S U V W X Y

Now if everything goes according to plan the next parts read will be already in RAM, and when these things are read from you go ahead and load the adjacent data if it’s not already loaded, and you release the data which is furthest away from what’s currently being used. Since you could keep 70%+ of the game in RAM the probability of a cache miss (when something is asked for that’s not already in RAM) should be fairly low and should be most likely to happen when something ‘odd’ happens in the game like a level load, or a boss appearing; in which case the momentary hiccup shouldn’t be that big a deal.

So any devs think this idea works? Anybody want to try to implement it?
 
Of the Glorious 88.5MB that make up GMotW 64MB are dedicated to the graphics, which has got to be the part of the ROM that lends itself the best to this kind of dynamic predictive loading. So if the method I described is only used on the ‘c’ ROMs and everything else is loaded as normal and just kept in RAM, the problem might just be solved there, and cache misses might be kept to an even lower number.
 
Seibei Iguchi posted on Oct 31 2005 at 08:21 PM said:
icurafu posted on Oct 31 2005 at 03:37 AM said:
because devs wanted the game to run on both CDs and cartreges.  And because the CDrom was only ever 1x, it could only be done between levels, or else the game would onyl be available for the cartrege.

SNK actually released a new neogeo cd model with a tad bit faster cd drive reading and more internal ram it was called Neogeo Cd Z

neo_geo_cdz.jpg


The later modle had the same speed CDrom (1x) it just had more cache.
 
Last edited by a moderator:
icurafu posted on Oct 30 2005 at 10:37 PM said:
From what I understood, most of the later neogeo games only loaded from the cart between levels, because devs wanted the game to run on both CDs and cartreges.  And because the CDrom was only ever 1x, it could only be done between levels, or else the game would onyl be available for the cartrege.

So, even if the game is too big for the 64meg of ram, then it must have been released after the NeoGeo CD, and thus would be designed to load like a CD.  Thus it needs to fit on the 7MB of ram on the NeoGeos.

That seemed very sensible when I first read it, but upon thinking a little more I remembered that the NeoGeo has a very tiny amount of RAM, so what exactly would it be loading the cartridge too?

NeoGeo RAM Breakdown:
Work RAM: 64 KB
Video RAM: 68 KB
Z80 RAM: 2 KB

Certainly it makes sense that in later NeoGeo games the developers would make the game planning for its eventual conversion to NeoGeoCD but I don’t think it could have possibly been done in the manner you’re implying. I think it’s more likely they just made sure that all the resources needed for any given segment of a game never exceeded the size of the NeoGeoCD’s cache thus limiting the number of loads for a given segment of a game to 1. So in the MVS version of the game it would still randomly access the cartridge but the total amount of data accessed would be small enough to fit into the cache of the CD versions of the console. I don’t see this as helping us emulate the MVS any better though since we won’t be able to predict what parts of the cartridge will be used in advance, but it does reinforce the fact that wel all already knew; that the MVS never needed fast access to all of it’s cart at any given time.
Ah, I see. Only the CD version has 7 megabytes of ram. How stupid am I.

It still makes sense that if you develope a game for the less popular NeoGeo and the more popular NeoGeoCD, then you would expect to engineer it to never need more then 7megabytes of textures and sound at the same time.

You might go over, by loading (MOD stlye) music into into the NEOGEO version.
 
Last edited by a moderator:
you've been doing your homework, dijitao!
anyway, maybe a stupid question, but wouldn't running the rom right off the SD have the same effect as virtual memory? how exactly do the xbox emus work with the virtual memory? it was something special i think.
 
junker posted on Oct 31 2005 at 07:32 PM said:
you've been doing your homework, dijitao!
anyway, maybe a stupid question, but wouldn't running the rom right off the SD have the same effect as virtual memory? how exactly do the xbox emus work with the virtual memory? it was something special i think.

I've been trying to find information on how MAMEoX handles it's virtual memory but I haven't got much beyond how to set it up. (http://forums.xbox-scene.com/index.php?showtopic=266868) As far as your question about running the ROM directly off the SD card, that was my first thought at the start of the thread, but it was rejected due to the fact that the SD card is significantly slower then the Neo Geo cartridge. To answer your question directly yes you'll get the same effect running the game off the SD card compared to running it from “virtual memory”, but what I'm purposing here is a bit more advanced. The goal is predict what your going to need in advance and put it into RAM.
 
Last edited by a moderator:
yeah, all those emulators like fbax, kawax, mamox load up the massive neo roms after unzipping them.
anyway, what i meant was, since those emulators use the 64mb of ram along with the harddrive to load the rom, how is this different from loading the rom completely from the harddrive? the harddrive speed isn't as fast as ram speed, eh? i must not be understanding some basic stuff here..
 
junker posted on Oct 31 2005 at 09:47 PM said:
yeah, all those emulators like fbax, kawax, mamox load up the massive neo roms after unzipping them.
anyway, what i meant was, since those emulators use the 64mb of ram along with the harddrive to load the rom, how is this different from loading the rom completely from the harddrive? the harddrive speed isn't as fast as ram speed, eh? i must not be understanding some basic stuff here..

We'll as far as I can tell the XBOX HD should be sending data at about 60MB/s and a good SD card will move data at around 15MB/s so the XBOX HD is significantly faster. The next problem beyond bandwidth is latency, of which I have no clue for the SD card, and the XBOX HD should be around 12ms. When emulators on the XBOX use virtual memory it's still also using physical (real) memory as well, and intelligently moving data to and from the virtual memory to the real memory – I found this PDF which explains some of the methods used for deciding what goes where: http://people.msoe.edu/~mccrawt/resume/pap...384_virtual.pdf

Pretty interesting read, I'm still digesting it.
 
Last edited by a moderator:
left trigger would be nice for coin, and right trigger for start ;)
 
of course ;)
but left trigger coin, right trigger start should be standardized hehe
 
I'd rather it was 'Select' for coin and 'Start' for start

A USB powered coin slot would be the best choice though. Shame the USB port isn't powered so it would have to be a self powered coin slot. ;)
 
I remember mentioning the low levels of memory present in the MVS system in another thread... it was responsed that a lot of carts had additional RAM in the carts themselves.

I've no idea how accurate this is (I'm only relaying information given to me by someone who presumably - seeing as I know little to nothing about NeoGeo - know more than I do), but it would have to be considered.

That said, I doubt it would be any more than 16mb given price of ram in the NeoGeo era, and probably a good deal less.
 
I remember mentioning the low levels of memory present in the MVS system in another thread... it was responsed that a lot of carts had additional RAM in the carts themselves.

I've no idea how accurate this is (I'm only relaying information given to me by someone who presumably - seeing as I know little to nothing about NeoGeo - know more than I do), but it would have to be considered.

That said, I doubt it would be any more than 16mb given price of ram in the NeoGeo era, and probably a good deal less.
It's false. I never see any carts with additional RAM. The supperiority of neogeo come from the enormous size of the graphic roms.
 
Last edited by a moderator:
Most of the Neo Geo and MAME games and I have played have 'Insert Coin' on title screen, will the GP2X have a coin slot to play these games?

lol! I'm really hoping that RoboCop (arcade) will be playable on a GP2X version of MAME in the future... :wub:

I would guess that Neo-Geo emulation would be like back on my old P-166 running NeoRage. If you didn't have X amount of memory, you could only run certain games. That's still cool for me, as my favourite Neo-Geo (MVS) games are Turf Masters and Drift-Out... :D
 
Last edited by a moderator:
Back
Top