gpsp-src-0.9.05
所属分类:模拟服务器
开发工具:C/C++
文件大小:649KB
下载次数:118
上传日期:2008-01-27 20:51:51
上 传 者:
飞小仔
说明: 目前最快的GBA模拟器,采用了动态编译技术,非常值得做模拟器的参考借签
(GBA is currently the fastest simulator, using a dynamic compiler technology, a very worthwhile reference simulator by executing)
文件列表:
gpsp\2xSaI.cpp (20860, 2007-04-06)
gpsp\2xSaI.h (985, 2007-04-06)
gpsp\build.txt (314, 2006-08-27)
gpsp\cheats.c (9021, 2007-04-09)
gpsp\cheats.h (1253, 2007-04-09)
gpsp\common.h (9774, 2007-04-13)
gpsp\configfile.h (3425, 2006-07-12)
gpsp\COPYING.DOC (17990, 2006-08-27)
gpsp\cpu.c (304275, 2007-04-13)
gpsp\cpu.h (5780, 2007-04-13)
gpsp\cpu_threaded.c (270401, 2007-04-13)
gpsp\disasm.c (9074, 2007-04-09)
gpsp\ezxaudio.cpp (4115, 2007-04-14)
gpsp\ezxaudio.h (1177, 2006-07-21)
gpsp\font.h (10516, 2006-07-10)
gpsp\gamewidget.cpp (24584, 2007-04-14)
gpsp\gamewidget.h (3845, 2007-04-13)
gpsp\game_config.txt (22963, 2007-04-02)
gpsp\gba_player.cpp (6290, 2007-04-14)
gpsp\gba_player.h (1366, 2006-07-21)
gpsp\gp2x\align_test.c (1439, 2007-04-09)
gpsp\gp2x\arm_codegen.h (48768, 2007-04-09)
gpsp\gp2x\arm_dpimacros.h (72113, 2007-04-09)
gpsp\gp2x\arm_emit.h (106906, 2007-04-09)
gpsp\gp2x\arm_stub.S (41822, 2007-04-09)
gpsp\gp2x\bios_cache.S (16459, 2007-04-09)
gpsp\gp2x\cmdline.c (8832, 2007-04-09)
gpsp\gp2x\cmdline.h (93, 2007-04-09)
gpsp\gp2x\cpuctrl.c (11075, 2007-04-09)
gpsp\gp2x\cpuctrl.h (2016, 2007-04-09)
gpsp\gp2x\cpu_speed.c (36712, 2007-04-09)
gpsp\gp2x\daemon.c (20023, 2007-04-09)
gpsp\gp2x\daemon.h (556, 2007-04-09)
gpsp\gp2x\display.c (3151, 2007-04-09)
gpsp\gp2x\display.h (298, 2007-04-09)
gpsp\gp2x\font.c (8964, 2007-04-09)
gpsp\gp2x\gp2x.c (2371, 2007-04-09)
gpsp\gp2x\gp2x.h (1057, 2007-04-09)
gpsp\gp2x\gp2xminilib.c (6950, 2007-04-09)
gpsp\gp2x\gp2xminilib.h (1610, 2007-04-09)
... ...
-- gameplaySP Gameboy Advance emulator for Playstation Portable --
-- Release log --
v0.91 (minor cleanup release)
NOTE: I don't usually do minor releases but I rewrote a ton of
things in gpSP 0.9, much of it during the last few days, and although
I spent a lot of time debugging a few bugs inevitably crept in.
# Fixed some issues in the new memory handlers that crept up, hopefully
should fix the problems between 0.8 and 0.9.
# Fixed a bug introduced in 0.9 that could cause crashes when selecting
things in the menu (I hope, at least).
# Fixed a bug with a certain invalid opcode causing a jump to be scanned
when there isn't one (fixes Sabre Wulf).
# Removed 2048 option for audio buffer.
v0.9 (yes, it's still beta)
NOTE: As some of you may be aware I'm pretty much tired of these
unofficial releases by people (okay, mostly single person) who
don't wish to follow my wishes. I'm in the process of asking this
person to stop, in his own language. However, I want to make
something clear. Look at the last six new features in this
changelog. I added these TODAY. I could have done them at any
time. But I didn't, because I spent many (dozens, quite possibly
hundreds) hours debugging games that people want to play. I have
always believed that this is far more important than spending time
on new features. Frankly, I'm tired of my emulator being hacked on
by other people, and if it doesn't stop I'm going to make this
project closed source.
Since I know this information is most visible when updated on the
major sites, note that it is the news posters I am especially
talking to. Next time you upload unofficial releases of my
emulator (without even knowing what's changed) bear in mind that
you're only encouraging me to stop working on this. If you want
to pick sides between me and unofficial devs, be my guest. I'll
let you decide by the contents of this release who's doing more
for my emulator.
Oh, and if you downloaded a version of gpSP that has more than
"gpSP" in its name then you're using one of their versions. Shame
on them for not even removing this threatening message, and shame
on you. Unless you're using a port I endorse (GP2X, Dreamcast, etc),
in which case everything's good.
# Fixed stereo output being reversed.
# Fixed a bug causing misaligned errors on 8bit writes to the gbc
audio channel 3 wave data (fixes various Super Robot Wars games)
# Fixed DMA with garbage in their upper 4 bits (fixes a crash in
Zelda: Minish Cap)
# Added double buffering to the rendering, removes line artifacts.
Big thanks to Brunni for the idea.
# Fixed a bug preventing some SRAM based games from saving (fixes
MMBN4-6)
# Fixed a bug causing part of EWRAM to potentially get corrupted if
code segments loaded in EWRAM cross 32KB boundaries (fixes
Phantasy Star 2)
# Fixed a bug causing games using movs pc in user mode (very bad
behavior) to crash. Fixes Colin McRae Rally 2.0.
# Improved timing a bit more. Fixes GTA Advance.
# Fixed a sprite clipping bug (fixes crash in third boss of Zelda:
Minish cap)
# Increased translation buffer size significantly (fixes Donkey Kong:
King of Swing)
# Fixed a dynarec bug causing add pc, reg to not work in Thumb code
(fixes crash in DBZ:LoZ, seems to fix crashes in battle in Golden
Sun, probably fixes other games)
# Made sprites using tiles < 512 not display in modes 3-5 (fixes
a couple minor graphical bugs)
# Removed abort on instruction 0x00000000 hack, was breaking a
certain bugged up game (Scurge)
# Fixed bug in flags generating variable logical shifts (fixes
SD Gundam Force)
# Fixed unaligned 16bit reads (fixes DBZ:LoZ in game)
# Redid contiguous block flag modification checking AGAIN and
hopefully got it right this time (fixes Mario vs. Donkey Kong)
# Redid ldm/stm instructions, fixing some cases (along with the
timing improvements fixes Mario & Luigi)
# Fixed 14bit EEPROM addressing (hopefully fixes saving in a lot
of games)
# Completely redid memory handlers, accurately emulates open and
BIOS reads now. Fixes Zelda: Minish Cap (roll bug, last dungeon),
Rayman, MMBN 1 (last dungeon), probably others.
# Fixed a minor graphical glitch on the edges of the screen
(thanks Brunni and hlide for the help!)
# Fixed crash on loading savestates from files of games not currently
loaded, but be sure you have the exact file you loaded it from or
gpSP will exit.
@ New memory handlers should provide performance boost for games
that access VRAM significantly (ie 3D games)
@ Added dead flag elimination checking for logical shifts, probably
doesn't make a noticeable difference but should have been there
anyway.
+ Added rapidfire to the button mappings.
+ Added auto frameskip. Removed fractional frameskip (don't think
it's very useful with auto anyway). Select auto in the graphics/
sound menu to activate it; frameskip value will act as the
maximum (auto is by default on). Thanks again to Brunni for some
help with this. Frameskip options are game specific.
+ Added vsync to the rendering. Only occurs when frames aren't
skipped. Seems to reduce tearing at least some of the time.
+ Added non-filtered video option.
+ Cheat support (Gameshark/Pro Action Replay v1-v3 only), still
in early stages, doesn't support everything; codes may cause
the game to crash, haven't determined yet if the codes are bad
or the implementation is. See cheat section for more information.
+ Added ability to change audio buffer size. Does not take affect
until you restart the game.
+ Added analog config options.
+ Added ability to set analog sensitivity and turn off analog.
+ Added ability to change the clock speed. This is a game specific
option. Try lower speeds w/auto frameskip to save battery life.
+ Fixed savestate speed on crappy Sony sticks.
(legend: # bug fix, + feature addition, @ optimization)
v0.8 - ("unlocked" beta)
NOTE 1: It has come to my attention that there are actually BIOSes
out there that are being used that cause some games to not work.
The BIOS md5sum listed here is for the BIOS actually in GBAs and
is as accurate as you'll get, (if you have a GBA and a flashcart
you can dump it yourself, see http://wiki.pocketheaven.com/GBA_BIOS)
NOTE 2: Since I know this is as far as a lot of people here I have a
little request. Please, please, (I'd italicize this if I could)
please stop constantly asking me when the next release will be,
what it'll have, etc. And while you're at it, please stop asking me
to implement wi-fi multiplayer, cheat support, or fix all of your
games. Some things will happen in due time, other things might not
ever happen. I devote about as much time as I can to this emulator
and I carefully include as much as I can in releases to try to
minimize the number of people who will nag me next time (erm, I
mean, to make the most people happy), so I don't release every other
day or anything like that. Sorry that I can't release once a week,
but I'm a lot busier now than I was when I was first developing this
emulator. Good thing I got the first version out before that, wasn't
it?
Congratulations, you made it this far! Now read the rest of the this
thing. *_*
# Fixed bug in dead flag elimination, "alt" version no longer needed.
# Fixed EEPROM saves being saved as 32kb instead of 512bytes/8kb
+ 32MB ROM support has been added. ROMS are "demand loaded" as
necessary and page swapped out; there might be a small loading lag,
but I have yet to ever really notice anything.
NOTE: 32MB ROM support only works for unzipped ROMs.
+ Save states have been added. See the save state menu for save/load
options.
+ Support for the real-time clock (RTC) chip in Pokemon cartridegs
and other games. The implementation is based off of VBA's, whatever
notes on gbadev I could find, and some of my own reverse engineering
of what the games do... it might not be totally correct. Also,
setting the time does not work.
+ Per-game configuration. Currently this only saves frameskip and
frameskip variation options.
+ Removed the flash type option from the menu and instead added it
to game_config.txt. Hopefully got everything - let me know if you
find something that isn't there. It's pretty easy to add them if you
have to.
+ Added a display in the upper left-hand corner to indicate when
fast-forward is on.
+ Added button bindings for save/load state.
@ Found a fix of StrmnNrmn proportion: far too much unnecessary mutex
synchronization was going on. Removing the two offending lines of
code gave a massive speed boost for free. Enjoy.
v0.7 - (beta than ever)
# Fixed a dynarec bug involving flags generating functions in
contiguous conditional blocks. Fixes music in Super Mario
Advance 2-4.
# Fixed a dynarec bug where Thumb mov imm instructions wouldn't
set flags. Fixes Zelda: Minish Cap, Megaman Battle Network,
probably others. Comes at a slight speed cost.
# Fixed a MIPS dynarec bug where some delay slots might not
get filled rarely, causing chaos. Don't know if it improves
any games.
# Improved self-modifying code detection. Makes Golden Sun,
Golden Sun 2, and Madden 2007 sorta work but excrutiatingly
slowly. Looking for a game-specific workaround for this - if you
want to play these games you'll have to wait for now :(
# Fixed a bug causing the interrupt disable flag to go down
when SWIs are entered, causing crashes/resets. Fixes
Super Mario Advance 2-4.
# Fixed menu crashing when strings with certain characters are
printed (for instance going to the menu after loading the
BIOS)
# Accidentally forgot to render win0 + win1 + objwin when all
active at the same time, many weeks ago. Added that, should fix
some parts in games that had frozen screens.
# Fixed some issues with gpsp.cfg needing to be present and
corrupting, hopefully. At the very least sanity checks are
performed on the config file.
# Made it so assigning the frameskip button to something besides
triangle actually worked as expected.
# Fixed ability to restart current game if nothing is loaded
(ie, crash)
# Added interrupt on cpsr modification support to the dynarec
(fixes backgrounds in Castlevania: Harmony of Dissonance)
# Added open addressing for ldm/stm instructions (fixes
Super Mario Advance 3)
# Improved cycle accuracy a little. Don't know of anything this
fixes, but games with idle loops will run a little better w/o
idle loop elimination (but should still be added when possible)
# Fixed some bugs causing sound to play sometimes when it shouldn't.
@ Added dead flag elimination for Thumb code. May possibly have
noticeable performance increases (Thumb emited coded size can
have a reduction of 20% or more)
@ Added code generation for divide SWI. May have a small speed
increase in some games.
+ Added analog nub support (special thanks to psp2*** for the
code)
+ Added fractional frameskip. Go below 0 to get them. A frameskip
of 1/2 for instance means render 2 out of every 3 frames, 2/3
means render 3 out of every 4 frames, etc. Possibly useful for
games that are not quite fast enough at fs0 but fullspeed at
fs1...
v0.6 - (still beta quality, look out for new bugs)
NOTE: Please include gpsp.cfg with EBOOT.PBP, this shouldn't be
necessary but I think it is right now.
# Fixed a nasty bug that shouldn't have made it into the initial
release; a lot of games that TECM.. erm.. crash won't anymore.
NOTE: This doesn't mean that no game will ever crash, freeze,
otherwise not work.
# Fixed some crashes in the GUI and the ability to "go up" past
ms0:/PSP. Made the "go up" button square like it was supposed to
be (instead of cross).
+ There's now a menu that you can access, by default press right
while holding down triangle for the frameskip bar.
+ Menu option: resize screen aspect ratio, the default is now
"scaled 3:2" which makes it look more like a normal GBA. You
can use "fullscreen" (what it was like before) or "unscaled 3:2"
(tiny but pixel for pixel like a GBA)
+ Menu option: You can now load new games while the current one
is running.
+ Menu option: You can now restart the currently running game.
+ Menu option: Frameskip variation - this defaults to "uniform"
whereas it defaulted to "random" last release. Basically, turn
it on random if you find that frameskip causes flickering
animations to make things disappear. Other than that it will
generally look better on uniform.
+ GUI and file loading now have "auto repeat" on the buttons so
they're not such a pain to navigate.
+ Menu option: Added support for 128KB flash ROM, some games
require it (Pokemon Firered/Leaf Green, Super Mario Advance 4),
turn it on before running the game to make sure it works.
NOTE: There are some versions of these ROMs that have been
hacked to get around their 128KB flash, and may not even work
properly at all. Look out for them, these games should save
128KB save files after you set the setting to it, IF they use
128KB flash.
+ Menu option: Added ability to make the .sav files only update
when you exit the emulator, use with extreme caution (in other
words, it's not a good idea to use something like this in beta
quality software if you care about your saves). Does NOT update
if you exit through the home button, don't use the home button
if you can help it.
+ Zip support thanks to SiberianSTAR. It will load the first file
with the extension .gba or .bin that it finds.
+ Menu options are saved to gpsp.cfg. Note that it does not save
frameskip options or flash ROM options because these are very
per game particular.
+ The emulator will now try to save backup files to something
more matching the backup size than a fixed ***KB.
@ Loading ROMs and the auto save of the .sav files is MUCH faster
now. Thanks for the heads up on how to improve this from pollux!
@ While coding for the screen resize code I found that SDL just
wasn't cutting it and had to code for the GU myself. Turns out
the new code is faster (but because it is render code any
improvement will be diminished to nothing as frameskip is
increased). Special thanks to Zx-81 for the tips on this one
and for his GU code in the PSPVBA source as an example.
@ Added some games to game_config.txt. Note that not all versions
of these ROMs will work with these options, try to use the USA
version if possible.
8-19-2006 v0.5 - Initial release (public beta quality)
-- About --
gameplaySP (gpSP for short) is a GBA emulator written completely from
scratch. It is still pretty young (only having started a 3 months prior
to the first release) and thus rather immature, but it does a decent
job of playing a number of games, and is being improved upon somewhat
regularly. It is currently somewhat minimalistic, in the sourcecode,
presentation, and features. Its number one focus is to deliver a GBA
gaming experience in the most playable way that PSP can manage, with
frills being secondary (although still a consideration, at least for
some of them).
Having said that, optimization was the important way in achieving this
goal, with overall compatability being a near second. Because of this
some games may not run at the favor of running more games significantly
better. Of course, the compatability will improve with time. The
compatability in the current version (0.8) is perhaps around 80%
(assuming the correct BIOS image is used).
Many games will run at their best out of the box, but some games will
run very slowly unless idle loops are taken care of. There is a supplied
ROM database, game_config.txt, that gives idle loop targets and other
settings that may help a game to run better (or at all) on a per-game
basis. Currently (as of version 0.8) a few dozen games are on this list,
mostly only USA versions. This list will continue to be updated; there's
no real telling exactly how many of the ~2500 GBA games will need to
appear here.
gpSP currently requires an authentic GBA BIOS image file to run. It will
make no effort to run without one present; this file is 16kb and should
be called gba_bios.bin and present in the same location as the EBOOT.PBP
file. Please do not ask me where to obtain this, you'll have to look
online or grab it from a GBA. Note that it is not legal to have this file
unless you own a GBA, and even then it's rather gray area.
-- Features --
gpSP mostly emulates the core Gameboy Advance system. As of right now it
does not emulate any special hardware present on various GBA cartridges.
What it emulates:
GBA CPU: All ARM7TDMI ARM and Thumb mode opcodes except block memory w/
s-bit (probably aren't used in GBA games)
Video: Modes 0, 1, 2 almost completely, basic 3-5 support, sprites,
windows/OBJ windows
Interrupts: HBlank, VBlank, all timers, all DMA channels, keypad
DMA: Immediate, HBlank, VBlank, sound timer triggered
Sound: Both DirectSound channels and all 4 GBC audio channels
Input: Basic GBA input delivered through PSP controls
Cartridges: Currently supports ROMs up to 32MB in size (the maximum for
GBA) with the technique of ROM page swapping to fit within PSP's RAM.
Backup: 32/***kb SRAM, ***/128kb flash, 512bit/8kb EEPROM
RTC: The real-time clock present in cartridges such as most of the
Pokemon games and some others.
What it lacks:
Video: No mosaic, bitmap modes lack color effects (alpha, fades),
there might be some minor inaccuracies in blending...
Cycle accuracy: Very cycle innacurate; CPU is effectively somewhat
overclocked, meaning games with rampant idle loops will probably run
rather poorly. DMA transfers effectively happen for free (0 cycle).
Please do NOT use gpSP as a first source for developing GBA homebrew,
try No$GBA instead.
Additional features it has:
- The ability to attempt to run games at faster than GBA speed (sometimes
they can end up a lot faster, other times not so much)
- Savestates: the ability to save a game's state to a file and resume
playing where you left off later.
- Mild cheat support
Features that it doesn't have (please don't ask me to implement these!)
- Wi-fi multiplayer
-- Controls --
The default control scheme is very simple. If you don't like it you can
change it in the configuration menu.
At the ROM selection screen:
Up/down: navigate current selection window.
Left/right: switch between file window and directory window.
Circle/start: select current entry.
Square: go one directory up.
In game:
Up/down/left/right: GBA d-pad
Circle: GBA A button
Cross: GBA B button
Square/start: GBA start button
Select: GBA select button
Left trigger: GBA left trigger
Right trigger: GBA right trigger
Triangle: Adjust frameksip
In frameskip adjustment:
Hold down triangle to keep up, press up/down to increase/decrease
frameskip, respectively. Press down at 0 to change to auto, and up
at auto to change to 0.
In the menu:
Up/down: navigate current menu.
Left/right: change value in current menu selection (if a value is present)
Circle/start: select current entry (see help for entry to see what this means)
Square: exit the current menu.
-- Frameskip --
The purpose behind frameskip is to cause the emulator to not render every
frame of graphics to make the ... ...
近期下载者:
相关文件:
收藏者: