In my thread “Question About Neo Geo Mvs Emulation” (http://www.gp32x.de/board/index.php?showtopic=21613) I eventually reached the conclusion that the best hope for dealing with ROMs larger then what the GP2X can fit into RAM was to implement a caching system that would keep as much of the ROM in RAM as possible, and hopefully the part of the ROM in RAM was what was actually most likely to be used. I think if any of you devs where watching that thread you would have stopped however before I reached that point since the replies where getting a bit off topic. This PDF goes over some of the techniques used in virtual memory page replacement which is a very similar concept:
http://people.msoe.edu/~mccrawt/resume/pap...384_virtual.pdf
What we need is Proximity Based Caching coupled with Least Recently Used (LRU) Replacement. I explained what I meant by Proximity in the previous thread so here’s a quote:
When new data needs to read in some old data needs to be released and LRU replacement seems about as good as it’s going to get.
So my question to you devs are:
Does this approach sound feasible?
Do you think it will solve the problem?
What problems do you foresee in a system like this?
Does anyone have any experience with this sort of thing?
Does anyone think they could implement this?
http://people.msoe.edu/~mccrawt/resume/pap...384_virtual.pdf
What we need is Proximity Based Caching coupled with Least Recently Used (LRU) Replacement. I explained what I meant by Proximity in the previous thread so here’s a quote:
”DijiTao” said: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
When new data needs to read in some old data needs to be released and LRU replacement seems about as good as it’s going to get.
So my question to you devs are:
Does this approach sound feasible?
Do you think it will solve the problem?
What problems do you foresee in a system like this?
Does anyone have any experience with this sort of thing?
Does anyone think they could implement this?
Last edited by a moderator: