Gpsp Emulation Problem Since 0.9-2Xb-U5


barosl

Still Fresh
Joined
Jul 9, 2009
Messages
16
Website
barosl.com
Starting from 0.9-2Xb-u5, my homebrew rom doesn't work on gpSP.

baroslized-gba.zip

It worked well on 0.9-2Xb-u4. But since u5, the message below is printed:

Code:
switching to ROM mmap
Segmentation fault

As I didn't know about GBA well, I may have missed something making the rom. Anyway, is there a solution for this?
 
Hi,

I was wondering about this since I found no homebrew games work that I've tested. I've only tested Elite for GBA and some compiled emulators (I was going to see how Cologne and the MSX emulator worked through emulation.)

I don't think it is a file size issue.

Is there a big speed difference from u4 to u5?
 
notaz said:
Try padding the ROM to 32M, maybe it's reading beyond end of file.
Yes, you're right! Padding to 32MB works.

Well, then is it possible to apply to the mainstream so that it doesn't need to be padded?
 
Last edited by a moderator:
barosl said:
Well, then is it possible to apply to the mainstream so that it doesn't need to be padded?
Wiz has not enough memory to do that. Actually gpSP has a paging mechanism to handle large ROMs, but I used Linux mmap() instead as I got an impression it performed better.
 
Last edited by a moderator:
notaz said:
Wiz has not enough memory to do that. Actually gpSP has a paging mechanism to handle large ROMs, but I used Linux mmap() instead as I got an impression it performed better.

This is a good idea in principle but do you have any numbers for it helping things? Since gpSP still has to go through a memory map for accesses regardless of whether the whole cart is loaded or not that constant overhead is not eliminated, and when something isn't in memory you have to spend a dominating cost to drag it in. The non-load related overhead may not be that different for the mmap version since exceptions have to occur and the kernel has to take care of it, as opposed to the kernel taking care of read syscalls. The only real difference is that the software mapping is 32KB paged instead of 4KB, which can be worse or better depending on the game.
 
Last edited by a moderator:
Exophase said:
notaz said:
Wiz has not enough memory to do that. Actually gpSP has a paging mechanism to handle large ROMs, but I used Linux mmap() instead as I got an impression it performed better.

This is a good idea in principle but do you have any numbers for it helping things?
Nope, haven't profiled it. What I liked about mmap() was elimination of ROM loading time, the games I tested were starting almost instantly, what motivated me to keep using it.
 
Last edited by a moderator:
notaz said:
Exophase said:
notaz said:
Wiz has not enough memory to do that. Actually gpSP has a paging mechanism to handle large ROMs, but I used Linux mmap() instead as I got an impression it performed better.

This is a good idea in principle but do you have any numbers for it helping things?
Nope, haven't profiled it. What I liked about mmap() was elimination of ROM loading time, the games I tested were starting almost instantly, what motivated me to keep using it.

You can do the same thing with the builtin swapping stuff, just have to force it to use it even if there's enough space.
 
Last edited by a moderator:
Back
Top