Okay this motivated me sufficiently to dump my GBA's BIOS using darkfader's GBADUMP tool. After a bit of stuffing around I got a good dump with the right CRC32.Yod4z said:Using good bios more FPS (5-10FPS) and no more crash.
slaanesh said:Okay this motivated me sufficiently to dump my GBA's BIOS using darkfader's GBADUMP tool. After a bit of stuffing around I got a good dump with the right CRC32.Yod4z said:Using good bios more FPS (5-10FPS) and no more crash.
Okay, so now when I load gba_bios.bin as my "ROM" I can watch the lovely GBA and it works exactly like the real thing. The "bad" BIOS has a slightly different intro sound and some garbled graphics below the "GAMEBOY" logo.
Games Tested:
Super Mario Kart (of course).
I can't see any difference in speed here what-so-ever. Perhaps it's my imagination but the sound seems nicer but I don't hink it's got anything to do with the new BIOS. Or does it?
Warioware.
Shrugs. Same. No speed difference that I can detect. Sound clearer? Perhaps it's my wishful thinking.
The other change I've made is setting the sound buffer set to 4096 bytes. I've found there is less variance in FPS as a result. Maybe this is something to do with the "better" sound that I've been experiencing.
Specifically, what does the GBA BIOS do? According to a Wiki, the following:
QUOTE
...is a set of low-level subroutines used by GBA games to perform such operations as square roots, trigonometry, data decompression, and the like...
Now I've noticed that the guy who wrote No$GBA wrote his own GBA BIOS which replaces emulated BIOS calls for native code. Very clever and most likely a lot faster to run.
@Exophase - is this worth the while?
And one more question @ Exophase. I had a look at the source code. Please tell me you didn't write Video.S from scratch?
HLE BIOS can be done, and it's faster (and relinquishes the need for a BIOS), but it's also a ton of work. It actually wouldn't make much difference in speed because most games don't use the BIOS heavily in time sensitive locations. Divide is currently being HLE'd - on the PSP version it's even being compiled down to a single instruction, and if that doesn't make a noticeable difference (in games where divide is being called a few times every frame) then I don't think anything will.
video.S is a compilation of video.c, it shouldn't be there..
That's interesting, because I never get the "Gameboy Advance" logo and startup sound. My GBA BIOS has the correct checksum. Am I supposed to be seeing this? I get a black screen and then the game starts.slaanesh said:Okay, so now when I load gba_bios.bin as my "ROM" I can watch the lovely GBA and it works exactly like the real thing.
Dunny said:That's interesting, because I never get the "Gameboy Advance" logo and startup sound. My GBA BIOS has the correct checksum. Am I supposed to be seeing this? I get a black screen and then the game starts.slaanesh said:Okay, so now when I load gba_bios.bin as my "ROM" I can watch the lovely GBA and it works exactly like the real thing.
D.
try loading the bios instead of selecting a rom....you wont see it otherwise, as far as i know - which i kind of miss infact.
ninja sauce said:Dunny said:That's interesting, because I never get the "Gameboy Advance" logo and startup sound. My GBA BIOS has the correct checksum. Am I supposed to be seeing this? I get a black screen and then the game starts.slaanesh said:Okay, so now when I load gba_bios.bin as my "ROM" I can watch the lovely GBA and it works exactly like the real thing.
D.
try loading the bios instead of selecting a rom....you wont see it otherwise, as far as i know - which i kind of miss infact.
Trust me its a good thing that you don't see it with each game starting off. It's a waste of time. Nice to see once and working correctly but after that it gets tiresome very quickly. Those kind of intro screens shouldn't last more than a second in my opinion and I'm glad gpSP bypasses it.
ninja sauce said:Dunny said:That's interesting, because I never get the "Gameboy Advance" logo and startup sound. My GBA BIOS has the correct checksum. Am I supposed to be seeing this? I get a black screen and then the game starts.slaanesh said:Okay, so now when I load gba_bios.bin as my "ROM" I can watch the lovely GBA and it works exactly like the real thing.
D.
try loading the bios instead of selecting a rom....you wont see it otherwise, as far as i know - which i kind of miss infact.
If you miss it so much go to cpu.c line 4444 and change 0x8000000 to 0x0000000 and recompile.
Yes, line 4444, I'm amused by that too.
When you set it to "3:2" it is just doing 1:1 pixel mapping. The reason it doesn't look as good when scaled is that it isn't doing by an even number like 1:1, 2:1 etc. So now you get some pixels that are doubled while others are not giving an un-even "blocky" look. No there is no way around this as the resolutions(GBA 240x160 vs 320 x 240) aren't evenly divisible at anything other than 1:1. The only way to reduce blockyness is to average the stretched pixels but that is very CPU intensive. The PC probably uses some filtering algorythms that are CPU intensive but it won't slow it down as you have much more CPU power to spare. Plus the more res over native that you have to scale the better it will look as you can use finer edge antialiasing with the higher "dot pitch" of a PC res.sehs33 said:Another thing, when I set resolution to unscale 3:2, the quality of the image is perfect, but when I choose full screen, I don't know... the image is still much sharper on my PC's monitor using the GBA emu there, isn't there any way to get a bigger screen size then the default (stretching it) while the image still appear sharper?
Okay, I've done some recompiling. I set the sound down to 22050 instead of 44100 but without a rigorous testing method I couldn't detect much speed up. If any it may have been 1-2 FPS but when you are looking for speed ups I think sometimes you might find things which aren't really there.Exophase said:If you miss it so much go to cpu.c line 4444 and change 0x8000000 to 0x0000000 and recompile.
Yes, line 4444, I'm amused by that too.
As of right now this will break games that use higher frequencies than this. I could probably modify this, but it's kinda one of those "why bother" kind of scenarios. There are other things I can do to optimize sound, but I don't think that's where much is going in the way of resources. Could vary depending on the game though.slaanesh said:Okay, I've done some recompiling. I set the sound down to 22050 instead of 44100 but without a rigorous testing method I couldn't detect much speed up. If any it may have been 1-2 FPS but when you are looking for speed ups I think sometimes you might find things which aren't really there.
Exophase said:As of right now this will break games that use higher frequencies than this. I could probably modify this, but it's kinda one of those "why bother" kind of scenarios. There are other things I can do to optimize sound, but I don't think that's where much is going in the way of resources. Could vary depending on the game though.slaanesh said:Okay, I've done some recompiling. I set the sound down to 22050 instead of 44100 but without a rigorous testing method I couldn't detect much speed up. If any it may have been 1-2 FPS but when you are looking for speed ups I think sometimes you might find things which aren't really there.
I'd be inclined to agree. It's just something I though was worth experimenting with as other emulators with options for sample rate seem to appreciatively speedup if reduced to 22050 or 11025hz. I was thinking that if the emulators only needs to generate 1/4 of the samples (for example) it must be therefore go faster as there is less to do. Of course the sound does suffer noticably at this frequency. 16500hz seems to provide a good tradeoff between speed and audio functionality.
I played the PSP version of gpSP again this weekend. I think it made my GP2x a bit jealous, so I had to throw a towel over it whilst I was doing so.
@ Exophase: How much of the improvements you've found whilst coding the GP2X version is suitable for the PSP version? Do you plan to write an equivalent PSP MIPS Alpha Blender?
I've had several, with 2.1.1, but they're not the crashes you're thinking of. They're just plain and simple emulation inaccuracies which happen at exactly the same places in most of the games I want to play :-(Exophase said:Right now the only thing that looks like a lead in the way of crashing is firmware version. I don't THINK anyone with firmware 2.1.1 has reported serious problems.