|
PSP News is a News and downloads site for the PSP, PSVita, PS4, PS3, PS2 and PSOne, We have all the latest emulators, hack and custom firmwares, homebrew and all the downloads on this site, we also cover commercial gaming and console news., the latest homebrew and releases, Part of the
DCEmu Homebrew & Gaming Network.
This Website
THE LATEST NEWS BELOW
|
June 15th, 2007, 15:58 Posted By: wraggster
Playlogic have today released a demo of their rather nice looking shooter for the PSP, the demo weighs in at a tad under 8MB.
This futuristic 3D shooter sees you assuming the role of a fighter pilot charged with bringing a dangerous witch to justice.
Download and Give Feedback Via Comments
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 15th, 2007, 15:20 Posted By: wraggster
New from PLay Asia
features
New Team, New Location – Two new Rainbow operatives enter the impending doom that is Las Vegas as their console brethren, Keller, Park and Walter, simultaneously work against the clock to save “Sin City.”
As Brian Armstrong, work as a field operative and assault expert, taking down tangos from the ground floor.
As Shawn Rivers, use your sniper and long-range shooting skills to pick off terrorists from above, one at a time.
Tag-Team Gameplay – In single-player mode, play as both a field operative and sniper as you battle to protect the innocent from carnage.
Observe - Plan - Assault – Use tactical planning to maneuver through Vegas environments while utilizing high-tech equipment like snake cams to strategically “tag” terrorists prior to entering a room.
Take Cover – When the action heats up switch to third-person view while taking cover, giving you time to examine the situation before making your move.
Tailored Control System – Shoot your way out of relentless gun battles utilizing a tailored control system built specifically for the PSP system.
Player Rewards – Build up your stats to unlock exclusive Rainbow Six Vegas content including concept art and the feverish Terrorist Hunt mode.
Terrorist Hunt Mode – Hone your skills in Terrorist Hunt mode, where your objective is simple – kill the terrorists. Enter specific points of single-player maps and down the spawning terrorists one at a time.
Multiplayer – Take the fight to five of your closest friends via wireless (ad hoc) or online play in Survival and Team Survival multiplayer modes, while exploring six classic Rainbow Six maps.
description
For the first time ever, Tom Clancy’s Rainbow Six® brings its frenetic counter terrorist gameplay to the PSP® (PlayStation®Portable) system. In a story paralleling the Xbox 360™ video game system from Microsoft and PlayStation®3 computer entertainment system versions of Tom Clancy’s Rainbow Six Vegas, Rainbow operatives are forced to defend one of the most recognizable cities in the world, as Las Vegas finds itself in the midst of chaos. The future of Las Vegas and global security is in your hands … can you save Vegas?
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 15th, 2007, 09:12 Posted By: The_Ultimate_Eggman
According to internet reports, the official PSP 'magic memory stick' utility has been leaked onto the web which also has the capability to ubrick PSP units in accordance with a special battery. The supposed software is 16.8MB in size.You will special battery addon which from what ive heard sends 30 and 60hz signals via the middle connetor to the psp to sync it with the PSP but in time im sure they may a way bypass this...(update heard its been in some good hands for a while and nothings come of it yet)...
DIGG THIS
You will need the special battery however
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 15th, 2007, 07:35 Posted By: wraggster
New from SuccessHK
Fantastic Four: Rise of the Silver Surfer features Marvel Entertainment's legendary super-powered foursome in its second big adventure. In the game and the film, Marvel’s first family of Super Heroes faces its greatest challenge yet as the enigmatic, intergalactic herald, the Silver Surfer, comes to Earth to prepare it for destruction. As the Silver Surfer races around the globe wreaking havoc, the team must unravel the mystery of the Silver Surfer and confront the surprising return of their mortal enemy, Dr. Doom, before all hope is lost! The game is based on both the popular comic book series, as well as the movie sequel, with exclusive plot elements that complement the film. It features all of the foursome’s over-the-top super powers, as well as a unique fusion attack system that allows players to combine forces with one, two or all teammates, in order to execute devastating team attacks against the opposition. In addition to fighting familiar enemies from the Fantastic Four universe, players can unlock alternative costumes, comic covers and more!
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 15th, 2007, 02:57 Posted By: wraggster
via engadget
It looks like those itching to find out exactly how the just-announced GunCon 3 controller for the PlayStation 3 would work need wonder no more, as Japan's Game Watch website appears to have scored the details, although they've since disappeared from the site. Wired's Game Life managed to preserve the key bits, however, which reveal that the controller functions much like a Wiimote, relying on a pair of markers placed on top of the TV that are detected by a camera in the muzzle of the gun. The gun also packs a full range of traditional controls, including six buttons and two analog sticks, although we doubt many will be ditching their SIXAXIS for it. While there's still no official word on a North American release, the gun and Time Crisis 4 will apparently be released in Japan sometime before the end of the year.
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 15th, 2007, 02:37 Posted By: wraggster
via sony blog
Just a quick update: we’ll be making available firmware upgrade 1.81 tomorrow which will fix a few small issues some of you have noticed. Most notably is the RGB Full setting which a few of you wrote in about. In 1.80 we added an option to the XMB under settings allowing you to choose between RGB Full and Limited. Basically if you are connecting your PS3 to your TV using an HDMI cable, and if your TV supports RGB full range, the picture quality may be improved when this option is set to Full. Some of you pointed out that the Full setting would sometimes revert back to Limited and 1.81 will address this issue. Please keep in mind that this setting is only effective when the PS3 is connected to a TV using an HDMI cable. You can download the update tomorrow from PlayStation.com or through your System Update option on the PS3 XMB.
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 15th, 2007, 02:33 Posted By: wraggster
The PSP Video 9 team have after a massive time released a new version of their Video Converter Software for the PSP.
Heres the release details:
2.24 Changelog:
Added: Older FFmpeg for Legacy PSP Files
Added: PSP Library Legacy File Support
Added: Renaming Title of PSP Videos
Added: PSP Intital Setup Wizard
Added: PSP VideoWizard Support
Updated: FFmpeg rev9133
Updated: MediaInfo 0.7.4.7
Click Here to Download
Release Notes:
PSP Video 9 has now been completely moved over to the newer 2.x conversion core allowing us to discontinue distribution the very old 1.94 version. As of 2.24, you can now convert and manage both legacy (MAQ/M4V) and regular video files. You can now also rename the titles of your files directly from the library whether they are legacy or regular files. We have added a setup wizard that will choose the proper settings in case you are unaware of the differences between legacy and regular video files. As with the previous PSP Video 9 2.x versions, 3.30+ firmware users can create 480x272 or 720x480 videos.
Finally, we highly recommend that users upgrade their PSP’s to version 3.30 or higher as this will fully unlock all the PSP’s video playback functionality that lets you use regular high resolution video files. For those running homebrew on their PSP, we highly recommend upgrading to the custom firmware 3.30 OE-A or higher to access the same functionality while maintaining your ability to use homebrew.
Download Via Link Above
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 15th, 2007, 02:24 Posted By: wraggster
Radad has released a new version of his Shell for the PS2, heres the original newspost from him:
RadShell
A command line client for the PS2.
Standard stuff:
- loading irx
- running elf
- execute scripts
- basic file management - delete, copy, etc
Heres todays news:
New version:
- Updates to display drawn immediately
- Draw cursor
- Improved line input editing
- Command line arguments passed to launched elfs
- Copy progress meter
Download and Give Feedback Via Comments
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 20:51 Posted By: wraggster
New Podcast from the PSP Show Folks:
The PSP Show #47 - Crush (MP3 6.92 mb 10 minutes 1 second)
DOWNLOAD the podcast by right clicking on this link or press play and listen in your browser.
SOme news some travel tips, and a look at Sega’s Crush in this show - and Ihave to say Crush is utterly, utterly, mindbendingly fun! Definitly worth a look.
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 20:48 Posted By: wraggster
News/release from Jsharrad
ME MP3 Library by jsharrad
--------------------------
To load and initialize:
music = loadlib ("memp3", "init")
--then make sure it actually loaded
if music then music() end
Functions:
Memp3.play("filename.mp3")
Memp3.stop()
---------------------------------------
-- ID3 TAGS ARE NOT SUPPORTED YET --
---------------------------------------
If your mp3 has a tag, it won't play.
No variable bitrate mp3s yet either.
subdirs are allowed, just use
Memp3.play("subdir/filename.mp3")
All work is done by the PSP's ME processor
and the threads created by memp3.lrx.
Download and Give Feedback Via Comments
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 19:50 Posted By: wraggster
tryolivier has released the first version of his 2D Rayman platformer game for the PSP. the game has versions for both 3.40 OE and Firmware 1.5 PSPs. The game is also in french but not too hard to understand.
Download and Give Feedback Via Comments
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 18:07 Posted By: wraggster
News/release from Altimax:
Hey, it's me, Access_Denied. I haven't released anything in a while. But I always wanted to go back to unit converter, because I really like that program. So here it is, v .9. Why only .9? Because I can't get data conversions working correctly. When I do, then it will be v1. Until then, it now fully converts length, weight, volume, area and temperature. In the future I plan to add power, density, force, speed and pressure. Here's the readme. If you have problems or suggestions, drop by my forums at http://adpsp.info/.
Quote:
Originally Posted by Readme
Unit Converter v0.9
Wednesday, June 13, 2007
Completed
-Length Conversions
-Weight Conversions
-Volume Conversions
-Area Conversions
-Temperature Conversions
-GUI
-Graphics
TODO
-Data Conversions
-Density Conversions
-Energy Conversions
-Force Conversions
-Speed conversions
-Power Conversions
-Pressure Conversions
Installing Iinstructions:
Extract the EBOOT.PBP and the Background.png
into a separate folder. Place this folder in
PSP/GAME/.
Usage Instructions
Left/Right = Quickly scroll by 1
L-Trigger/R-Trigger = Slowly scroll by 1
Square/Circle = Slowly Scroll by .001
Triangle/Cross = Quickly Scroll by .001
Graphics by Twin891.
Coding by Access_Denied.
Download and Give Feedback Via Comments
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 18:04 Posted By: wraggster
News/release from Andy Auff
Color Studio is a lua app made to help developers find exactly the RGB values for the color they are looking for. Here is the readme for more info:
Coded by andyauff in lua, this (first) version released 6-13-07. I don't plan on updating
it unless there is an interest.
Do you use RGB values for coding? Then this is your lucky day. With Color Studio, you can change
the RGB values and instantly see what color you are making. Mess around with it to find the
perfect color, and then write down the numbers or take a screenshot to save them forever!
Hopefully this application will help some people, I know it will me!
Controls: |
----------
Left: Move arrow left
Right: Move arrow right
Up: Add 1 to selected value
Down: Subtract 1 from selected value
Triangle: Add 10 to selected value
Cross: Subtract 10 from selected value
Select: Take a screenshot (only one can be taken or else it will be overwritten)
Half of the screen will turn the color you have made instantly! Have fun!
Download and Give Feedback Via Comments
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 17:57 Posted By: wraggster
Over at the PSPway site they have released a new font converter for the PSP. As with any tool flashing could brick your PSP, the readme to the app is in italian but the app itself is in english.
Download and Give Feedback Via Comments
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 17:52 Posted By: wraggster
via playstation.blog
Our friends over at GamePro.com have written an interesting article on a topic I get asked about all the time — Is the PS3 harder to develop for than other systems? I gave them some feedback on this and the reporter, Blake Snow, does a nice job of presenting a well-rounded story. For this piece, I spoke to our PD group and asked them for input on this question and thought you might be interested in reading their full reply:
This is an interesting question and hidden within the question is an enormously complex subject! If the game starts life on PS3, then man-hours per feature or costs related to asset production are comparable with industry norms. For that, you can include Xbox 360 and high-end PC games, and exclude PS2 and Wii. However, since PS3’s Cell processor allows MORE features - better physics, more complex graphical processing, lighting or sound, etc. — there is inevitably going to be more cost in supporting those extra features. It’s not that PS3 is harder to write for, it’s just that you can do more with it.
Middleware tools like Havok and other specialist graphics tools are now customized to exploit Cell’s SPUs. These mean that developers don’t have to reinvent those particular wheels themselves. Also, PlayStation Edge does some very difficult and performance-critical aspects of the graphics pipeline on the SPUs: geometry processing, animation, compression - delivering performance unachievable on other systems. This is available for free to all developers from SCE. So, given that PS3 can draw more on screen, the assets required to fill that capacity go up, too. This can, but not always, require more people - however depending on the game, much of that extra content can be produced automatically - procedurally in software, not by hand. Compared to PS2, the SPUs are much easier to code for. In PS2 we had some custom chips called VU0 and VU1 which were powerful, but tricky to write for. The SPUs use a more standard programming language.
Now, it’s not without challenges:
1) SPUs are not ‘normal’ processors like the PPU. There is a trade-off between performance and versatility. A Ferrari is not the best car for a visit to Home Depot…
2) If you are porting:
If your game starts on Xbox 360 you will have to re-engineer aspects of the game to run properly on PS3. This means additional effort. Some developers have been complaining about this but I don’t believe we can solve that. Xbox 360 is a different machine with good, but lower powered hardware in a different architecture. Developers have to view them as two different machines not as a common platform.
3) If your game has heavy online use:
XBL provides more and better standard libraries for online gaming to developers. For the same features on PS3, developers have to do some extra work. We’re catching up, but there is a difference.
BTW: Glad you guys and gals are enjoying the new blog!
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 17:49 Posted By: wraggster
Heres word from Sony itself on PSP rumours of late
The rumor mill is flowing about new PSP hardware and a PSP phone, and I just wanted to take the time to clear the air. We haven’t announced anything about a new PSP, much less one that would have any phone capabilities. As SCEA’s resident PSP guru, I’m thrilled to hear that there’s so much interest in the platform, but sorry folks, these reports floating around fall into the rumors/speculation category.
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 17:46 Posted By: wraggster
News from Playstation.blog
Jack Tretton posted this News over at the official Sony blog:
I hope you’re enjoying our official SCEA blog. Personally speaking, it’s great to finally have a place where we can talk candidly about the things we (and you) care about. While it’s no substitute for a one-on-one conversation, I’m excited to have a chance to listen and talk with you here. With that said, everything communicated in any form these days has to be considered an “on-the-record statement” so as much as I’d like to, I can’t completely throw my corporate hat out the window.
From where I sit, this industry has the most passionate consumers of any I’ve ever encountered. For some, gaming is a way to kill some time, for others it’s a favorite hobby, but for many it’s a way of life. As a gamer myself, I fall somewhere between a low to mid level enthusiast mainly because of free time. My day job is ironically eating away at my gaming time, although lately I’m finding the PSP has helped me reclaim some of this lost time on long plane trips.
For twenty one years I’ve worked exclusively in the industry. The last twelve have been with Sony Computer Entertainment. It’s been just over six months since I became President and CEO here and I can assure you that gaming is clearly my life. Now that we’ve got the hardware to drive the business, we’re putting all our efforts into insuring that we help create the best games possible for you to enjoy. My pledge is that we will continue to put you first and foremost, to understand what you really want from us. In fact, this blog is one way that I’m hoping this happens.
In 1995, when we launched the PlayStation, the majority of the gamers were twelve to seventeen year old boys. 2D platform, fighting, racing, and sports games were the norm. Platforms were born and died within five years maximum. There was minimal difference between hardware platforms. We here at Sony championed 3D graphics, CD based technology and a more mature diverse library of games. We believed that our platform had a lifecycle that should survive well beyond the traditional five years. Some of the initial criticism we received was that the hardware was a bit pricey, the system was hard to develop for and the early software line-up needed some work. When we introduced PlayStation 2 in 2000 we received much of the same criticism. When we introduced DVD based storage we were told that CD had more than enough capacity to store game data. In a few short years DVD had all but replaced CD and that storage capacity was being squeezed by the development community. In 2006 the song remained much the same. Most of you know what transpired: 100 million PlayStations and thousands of great games later, the PlayStation had a ten year run and could still be selling today. PlayStation 2 left our original success in the dust and shows no signs of stopping anytime soon.
We fully realize that past success is no guarantee of future success, but it does give you some perspective. We have to bring the games to market that will showcase what the PS3 can do and ultimately entertain you like no other games have. We need to provide proof of what the PS3 can do for you and work tirelessly to improve the value and justify your investment. At the end of the day, it’s always been about the games. To push the boundaries of gaming beyond where they currently lie takes a great deal of risk. I think all the hardware manufacturers are doing that in some way. We could have easily produced PlayStation 2.5 at a slightly increased price over the older model, and driven some nice profits and marginal innovation for a few years but that’s not how we got where we are today. You have to gamble and make major investments in the present that will pay dividends in the future.
We’re working hard to put the best tools in the hands of the development community so they can take you places you never imagined possible. We have more than 15 games coming from our own internal studios alone this year for PS3. Our third party partners will weigh in with a host of great games giving us more than 100 titles by year end on that system alone. At our Gamer’s Day event a few weeks back, we announced 18 exclusive games for PSP. This year, PS2 owners will get a little something for everyone with games like Buzz! and Singstar. Oh, and you certainly can’t forget the PlayStation Network. Right now, we are working on a slew of games and game packs that will be offered through the PlayStation Store in the coming months, including Warhawk, which personally speaking, is the PS3 game I’ve been playing most lately.
We are heading into one of the biggest shows of the year for the videogame industry. E3 is only a month away. Everyone here at SCEA is working very hard and is dedicated to pushing the development envelope to show you not only new stuff for games like Heavenly Sword, Uncharted: Drake’s Fortune and Ratchet & Clank Future: Tools of Destruction, but also a few surprises we have up our sleeves that no one has seen. You can check in here for updates as we head into the show, and I will be sure to report back once E3 begins.
So, that’s it for now from me. I really hope you enjoy our new blog. I think it is a great way for us to share information and for you to communicate back with us. I look forward to hearing your thoughts and posting more here in the weeks to come!
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 17:46 Posted By: wraggster
News from Playstation.blog
Jack Tretton posted this News over at the official Sony blog:
I hope you’re enjoying our official SCEA blog. Personally speaking, it’s great to finally have a place where we can talk candidly about the things we (and you) care about. While it’s no substitute for a one-on-one conversation, I’m excited to have a chance to listen and talk with you here. With that said, everything communicated in any form these days has to be considered an “on-the-record statement” so as much as I’d like to, I can’t completely throw my corporate hat out the window.
From where I sit, this industry has the most passionate consumers of any I’ve ever encountered. For some, gaming is a way to kill some time, for others it’s a favorite hobby, but for many it’s a way of life. As a gamer myself, I fall somewhere between a low to mid level enthusiast mainly because of free time. My day job is ironically eating away at my gaming time, although lately I’m finding the PSP has helped me reclaim some of this lost time on long plane trips.
For twenty one years I’ve worked exclusively in the industry. The last twelve have been with Sony Computer Entertainment. It’s been just over six months since I became President and CEO here and I can assure you that gaming is clearly my life. Now that we’ve got the hardware to drive the business, we’re putting all our efforts into insuring that we help create the best games possible for you to enjoy. My pledge is that we will continue to put you first and foremost, to understand what you really want from us. In fact, this blog is one way that I’m hoping this happens.
In 1995, when we launched the PlayStation, the majority of the gamers were twelve to seventeen year old boys. 2D platform, fighting, racing, and sports games were the norm. Platforms were born and died within five years maximum. There was minimal difference between hardware platforms. We here at Sony championed 3D graphics, CD based technology and a more mature diverse library of games. We believed that our platform had a lifecycle that should survive well beyond the traditional five years. Some of the initial criticism we received was that the hardware was a bit pricey, the system was hard to develop for and the early software line-up needed some work. When we introduced PlayStation 2 in 2000 we received much of the same criticism. When we introduced DVD based storage we were told that CD had more than enough capacity to store game data. In a few short years DVD had all but replaced CD and that storage capacity was being squeezed by the development community. In 2006 the song remained much the same. Most of you know what transpired: 100 million PlayStations and thousands of great games later, the PlayStation had a ten year run and could still be selling today. PlayStation 2 left our original success in the dust and shows no signs of stopping anytime soon.
We fully realize that past success is no guarantee of future success, but it does give you some perspective. We have to bring the games to market that will showcase what the PS3 can do and ultimately entertain you like no other games have. We need to provide proof of what the PS3 can do for you and work tirelessly to improve the value and justify your investment. At the end of the day, it’s always been about the games. To push the boundaries of gaming beyond where they currently lie takes a great deal of risk. I think all the hardware manufacturers are doing that in some way. We could have easily produced PlayStation 2.5 at a slightly increased price over the older model, and driven some nice profits and marginal innovation for a few years but that’s not how we got where we are today. You have to gamble and make major investments in the present that will pay dividends in the future.
We’re working hard to put the best tools in the hands of the development community so they can take you places you never imagined possible. We have more than 15 games coming from our own internal studios alone this year for PS3. Our third party partners will weigh in with a host of great games giving us more than 100 titles by year end on that system alone. At our Gamer’s Day event a few weeks back, we announced 18 exclusive games for PSP. This year, PS2 owners will get a little something for everyone with games like Buzz! and Singstar. Oh, and you certainly can’t forget the PlayStation Network. Right now, we are working on a slew of games and game packs that will be offered through the PlayStation Store in the coming months, including Warhawk, which personally speaking, is the PS3 game I’ve been playing most lately.
We are heading into one of the biggest shows of the year for the videogame industry. E3 is only a month away. Everyone here at SCEA is working very hard and is dedicated to pushing the development envelope to show you not only new stuff for games like Heavenly Sword, Uncharted: Drake’s Fortune and Ratchet & Clank Future: Tools of Destruction, but also a few surprises we have up our sleeves that no one has seen. You can check in here for updates as we head into the show, and I will be sure to report back once E3 begins.
So, that’s it for now from me. I really hope you enjoy our new blog. I think it is a great way for us to share information and for you to communicate back with us. I look forward to hearing your thoughts and posting more here in the weeks to come!
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
|
June 14th, 2007, 03:59 Posted By: xg917
Via http://strmnnrmn.blogspot.com/
Tracking down the SSB Dynarec Bug - Part 2
On Monday I talked about the fragment simulator and how this could be used to help track down bugs in the dynarec implementation. In this post I'm going to talk a bit about a tool I use mostly for regression testing, but also to help determine the exact point at which the fragment simulator and the interpretative core go out of sync. It's a bit of a long post, so apologies in advance
Daedalus can be compiled with a flag which enables a special 'synchronisation' mode. This build configuration creates an instance of a synchronisation class which can be initialised in one of two modes - either as a producer or as a consumer. At various points during program execution I pass information about the internal state of the emulator to the synchroniser for processing. In the case of the producer, it simply writes this data out to a file on disk. The consumer is a bit more interesting; it reads data of the required size from disk, and compares this 'baseline' value against the value provided by the emulator. If these two values are found to be different, the synchroniser knows that things have drifted out of sync and it can trigger a breakpoint and drop out into the debugger.
This technique relies on the fact that the emulator is deterministic, i.e. running the emulator twice in a row with the same inputs generates exactly the same results. By 'inputs' this means not just the same rom image, but external inputs such as data from the controller must match exactly too. Obviously pressing buttons on the controller in exactly the same order with the same timings would be impossible to duplicate, so the other function the synchroniser performs is to record input from the pad in the case of the producer, or play input back in the case of the consumer. Other external input, such as calls to timer functions (e.g. time(), QueryPerformanceCounter() or rdtsc) can be synchronised in the same way.
The synchroniser works with as few or as many sync points as you provide. For debugging very simple problems, you can get away with just checking the value of the program counter as each instruction is executed. For more tricky problems you can end up adding many more sync points - for instance you can synchronise the entire register set after every instruction to ensure that the synchroniser catches any instruction which generates a different result from the baseline.
I add sync points to Daedalus using a set of macros. When synchronisation is enabled, the macros expand out to calls to a virtual method on a global instance of the synchroniser class. An example sync point in the code might look like this:
u32 pc = gCPUState.CurrentPC;
SYNCH_POINT( DAED_SYNC_REG_PC, pc );
OpCode op;
if( CPU_FetchInstruction( pc, &op ) )
{
CPU_Execute( pc, op );
}
The interesting line here is the SYNC_POINT macro, which synchronises on the current program counter value. For producers, this just writes the value of 'pc' to disk. For consumers, it checks that the value we have for 'pc' matches the one read from disk.
The DAED_SYNC_REG_PC argument is simply a flag to describe what is being synchronised. Another global constant allows easy control of what is synchronised:
enum ESynchFlags
{
DAED_SYNC_NONE = 0x00000000,
DAED_SYNC_REG_GPR = 0x00000001,
DAED_SYNC_REG_CPU0 = 0x00000002,
DAED_SYNC_REG_CCR0 = 0x00000004,
DAED_SYNC_REG_CPU1 = 0x00000008,
DAED_SYNC_REG_CCR1 = 0x00000010,
DAED_SYNC_REG_PC = 0x00000020,
DAED_SYNC_FRAGMENT_PC = 0x00000040,
};
static const u32 DAED_SYNC_MASK(DAED_SYNC_REG_PC);
#define SYNCH_POINT( flags, x, msg ) \
if ( DAED_SYNC_MASK & (flags) ) \
CSynchroniser::SynchPoint( x, msg )
If I want to enable more thorough debugging, I can change DAED_SYNC_MASK and OR in more values:
static const u32 DAED_SYNC_MASK(DAED_SYNC_REG_PC|DAED_SYNC_REG_GPR) ;
Changing the mask value requires the emulator to be rebuilt from scratch and the baseline synch file to be recreated. This is a bit time consuming but doing it in this way means that the compiler can optimise out any synch points which we aren't interested in, keeping things running as quickly as possible.
One problem with this technique is that the synchroniser can quickly generate a massive amount of data, so much that most of the execution time is spent shifting this data to or from disk, slowing debugging to a crawl. In the example I gave on Monday, it can sometimes take over 500 million instructions before things go out of sync. Even when just synchronising on the program counter, that's over 2GiB of data that needs to be read/written to disk. When you throw in more sync points such as register sets (the GPR registers on their own are around 256 bytes) this can very quickly become impractical. To get around these limitations in Daedalus I gzip the stream of data on the fly which compresses the data significantly. Another trick I use is to hash each register set to a 32bit value and synchronise on this value instead. When using both these techniques the sync files typically end up around 100-200MiB, which is much more manageable.
One of the main uses of this synchronisation code is for regression testing optimisations I've made. I can take a 'known good' build of the emulator and initialise the synchronisation class as a producer to generate a baseline sync file. I can then take a modified version of Daedalus with the optimisations that I want to test, and initialise the synchroniser as a consumer. If the synchroniser detects that things have gone out of sync, then I know that my changes are buggy, and I can investigate why they're not working as planned. It's worth noting that even if everything stays in sync, this isn't a guarantee that my changes are bug-free, but it's a pretty good indication that they're ok.
I also use the synchronisation code to debug tricky dynarec issues. When debugging these types of problems I typically start off by disabling the dynarec engine and setting up the synchroniser to produce a baseline for testing. I'll then re-enable dynarec, but using the fragment simulator with precise interrupt handling (see the end of Monday's post for more on this) and run Daedalus with the synchroniser in consumer mode. Theoretically, as soon as the dynarec code gets out of sync with the interpretative core, the breakpoint triggers and I can investigate things more closely in the debugger.
This is exactly the process I used to track down the Super Smash Bros. bug. When I ran the emulator with the synchroniser in consumer mode, it detected that the program counter was different from the expected baseline value after exactly 387,939,387 instructions had been executed. I'd like to think that an error rate of 2.57e-7% wasn't all that bad, but apparently it is
Now that I knew the point at which the emulator was going out of synch, I set a few breakpoints in the emulator to see what exactly was happening. My usual trick is to disassemble the executed instructions just before and after things diverge, and see what's different. Here are snippets from the 'good' and 'bad' logs as things go out of sync:
Count 171f7c35: PC: 80132500: LW ra <- 0x0014(sp)
Count 171f7c36: PC: 80132504: ADDIU sp = sp + 0x0018
Count 171f7c37: PC: 80132508: JR ra
Count 171f7c38: PC: 8013250c: NOP
Count 171f7c39: PC: 80132ae8: JAL 0x80131fb0 ?
Count 171f7c3a: PC: 80132aec: NOP
Count 171f7c3b: PC: 80131fb0: ADDIU sp = sp + 0xffd8
Count 171f7c3c: PC: 80131fb4: SW ra -> 0x0024(sp)
Count 171f7c3d: PC: 80131fb8: SW s0 -> 0x0020(sp)
Count 171f7c3e: PC: 80131fbc: CLEAR a0 = 0
Count 171f7c3f: PC: 80131fc0: CLEAR a1 = 0
Count 171f7c35: PC: 80132500: LW ra <- 0x0014(sp)
Count 171f7c36: PC: 80132504: ADDIU sp = sp + 0x0018
Count 171f7c37: PC: 80132508: JR ra
Count 171f7c38: PC: 8013250c: NOP
Count 171f7c39: PC: 80132ae8: MTC1 at -> FP06
Count 171f7c3a: PC: 80132aec: NOP
Count 171f7c3b: PC: 80132af0: SWC1 FP06 -> 0x0018(a0)
Count 171f7c3c: PC: 80132af4: LBU v0 <- 0x4ad1(v0)
Count 171f7c3d: PC: 80132af8: ADDIU at = r0 + 0x0008
Count 171f7c3e: PC: 80132afc: BEQ v0 == at --> 0x80132b24
Count 171f7c3f: PC: 80132b00: ADDIU at = r0 + 0x0009
I've highlighted the instruction at which the synchroniser detected the PCs were out of sync. In the good trace (top) the PC is 0x80131fb0, but in the bad trace it's 0x80132af0. If you have particularly sharp eyes, you'll notice something else - two instructions before the code goes out of sync, the good trace executes a jump instruction to 0x80131fb0, but the bad trace is performing a MTC1 op (Move To Coprocessor 1)
This provides a particularly good example of one of the main weaknesses with the synchroniser - it's only as good as the synch points you set up. Because I was just synching on the program counter, it didn't detect the fact that the emulator executed an entirely different opcode two instructions previously. In this particular case I was fortunate in that the real source of the problem was very close to the location identified by the synchroniser, but sometimes the cause and effect can be separated by many thousands of instructions.
Fortunately it's easy enough to add new synch points in the code to detect issues like this, but adding too many synch points causes the emulator to slow to a crawl and makes debugging impractical. I've found the best approach is to start off with as few synch points defined as possible (ideally just the program counter) and slowly introduce more synchpoints as required. This is all very easy to do using the DAED_SYNC_MASK flag discussed above.
Getting back to SSB, it looked like I had found the root cause of the problem - somehow the rom was replacing the instructions in memory, essentially a form of self-modifying code (it's more likely it was just loading a new section of code into RAM from ROM, but it's still essentially self-modifying). The dynarec system was oblivious to these changes and so it ended up trying to execute stale instructions that it had cached when creating the fragment, potentially many thousands of cycles ago.
Dealing with self modifying code in dynamic code generators is generally very tricky. In Daedalus I've been relying on the fact that most roms are well-behaved and flush the instruction cache when they modify memory containing executable code. When I detect a instruction cache invalidate (through the MIPS CACHE opcode) I simply dump the entire contents of the fragment cache and start from scratch. This might sound a little heavy handed, but the way that I link fragments together makes it very hard to unlink small sections of code that has been invalided. Flushing the cache is very quick, safe and has a few advantages such as purging cold traces that are no longer being executed any more.
Ironically, the reason the dynarec was failing to cope with SSB wasn't due to a bug in Daedalus - it was due to a bug in SSB that just never happened to be a problem on a real N64. After updating memory with the new instructions SSB should have been invalidating the instruction cache to ensure that it didn't contain stale code, but for whatever reason it failed to do this. The only reason the rom runs correctly on a real N64 is that by the time it comes to execute the modified instructions, the instruction cache has been refilled a number of times and so the stale instructions are no longer cached.
Even though this isn't Daedalus's bug, it still needs to work around the problem. I'll leave this discussion for a future post though - this one is long enough as it is
-StrmnNrmn
To read more of the post and Download, click here!
Join In and Discuss Here
Submit News and Releases Here and Contact Us for Reviews and Advertising Here |
|
|
|
|
« prev 
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
next » |
|
|