|
Daedalusx64 Beta 3 Release
|
|
Junior Member
|
12. August 2009 @ 04:27 |
Link to this message
|
From the creator of Daedalusx64 emulator want all of you to know: Quote: Sorry, I haven't posted here in a long while. With Beta 2 successfully out the door over the weekend. I thought it was time for an update from myself as far what my plans are for Beta 3. I wasn't as active this time around, except in the background this time around, but Howard and Strmn's work was amazing. Having fallen way behind, I plan to start on the new GUI (a Coverflow kinda of GUI with some extra ideas I had.) I also am going to try to get as many of the bugs in the Bug tracker closed as possible and take a look at why Async audio is unstable. Finally, I am going to look at making all the Buffers Dynamic based on ROM size, PSP type, etc... Howard plans to move at least part of the CPU to the ME. Wally and Salvy are going to make sure the Microcodes are correct. Not sure about Chilly's or Strmn Plans, but I know Strmn, plans on some code clean-up. Well that's it for now enjoy the release. Don't know when I'll update this next, probably when I get started on the parts I plan on working on.
My To Do List: Items in Italics are the current items I'm working on
Gui Stuff: (Currently on hold due to work on core emulation bugs, planned for between Beta 3 and 1.0)
Cover-flow GUI (Started)
GUI Customization (Started)
Select Button for Quick Cancel of changes and return to ROM. (Not Done, should be quick when I get to the customization)
Multi-language Support (Not Started, will be done along side the GUI customization stuff.)
In-menu Custom controller configs saved per game w/Multi-Button/Command configs (Not Started)
GUI Debugging (Not Started, but I have found a few GUI related bugs)
Slow/Fast Motion (Not Done, Basically allowing the user to set the MAX FPS with the Frame limiter, will be done at same time as Auto Frameskip)
Turbo for all buttons (Will be done along w/controller config stuff)
SaveState Confirmation w/Progress Bar (Not Started, may get done along side savestate work)
Progress Bars for ROM Loading, HLE, Screen shots, etc... (Not Started, will be done with the GUI)
Sleep Mode Fix (Not Started)
Menu Transparency (Not Started)
Hook in game menu to Home button and add proper exit command to Main Menu (Not Started, will allow use of select for other purposes)
Compatibility/Playability:
Work on Microcodes for increased compatibility Includes GBI1,GBI2,S2DEX,Sprite2D and custom ones (Started, but a long way to go) - The uCode for 007's sky is almost done, it shows but it's not texturing or the correct size yet
Texel1 Support (Not Started, I'm waiting because I want to work on Stability, Compatibility, Speed, and then Graphics)
Removing need for Custom Blend modes (AKA Fix the Combiner :P, Not Started, Has to be done after Texel1 and Frame Buffer Support)
Multi-ROM load crash (Started(is less prevalent now), May be a Slim only bug and only affects loading several in a row... it's not all being cleaned up correct for the next rom, Part of memory leak work.)
Regression Testing (In Progress, Working on games that worked and got broke as I finish the rest.)@
Performance:
Fix DAEDALUS_SIMULATE_DOUBLE (Started)
Dynamic Buffer Optimization (Started, Making buffer sizes dependent on the individual ROM, will be finished along with memory leak work)
Permanent Combiner Buffer (Started, we use a buffer already, but I want to avoid the combiner except when absolutely necessary similar to what we do with OSHLE. AKA do it as we go only on the ROM's first run.)
Variable Auto Frameskip with Settable Max FS(Not Started)
Finish Implementation of Async Emulation of CPU (Not Started, See notes on the N64/PSP Comparison at the Bottom)
Reduce Fragment Cache Flushes (Partially done, but will be part of debugging the previous item, needs further work)
Optimization of slowest functions and uCode commands (Not Started, but will be done after the CPU move to see the most benefit)
Finished Items:
Added Auto uCode detection only ones hard coded now are the custom uCodes. (Possible regressions here.)
Implement new faster and better hashing using Murmur2 (This affects several parts of DX64)
Fixed 4bpp Texture padding bug (Gets rid of the vertical lines at the edge of textures.)
Improved Software Clipping (Slight speed up using software clipping)
Fixed Texture Filtering (Still needs work, sometimes uses Bi-linear filtering when not needed)
Fixed SSB Item Transparency issues
Fix Shaking Games!!! (Double Display re-implemented and doesn't break any games I know of...)
Fix settings not being properly saved (In progress and almost done, will save all settings whether default or not for each game)
Increased fragment cache buffer (was 3K for when we had a 1Mb buffer, now it's 9K with our 3Mb buffer)
Implemented Dynamic Trace Threshold based on Circumstances (Low for quick frags after a flush, higher for fewer frags as buffer fills for max Top Speed)
Removed Max Trace Map Size check (Doesn't seem to be needed, but if needed can be reimplemented.)
Removal of Lite/Full Version and prep for coverflow (Done, not code just organization and adding resources to the SVN)
Remove Loop Optimization (Done, commented out until fixed or completely removed)
Fixed Double Display !!!Thx Salvy for help with the FPS Display problem.
Multi-ROM load crash fix (Done, Thx to Salvy for help finding the source, but found a new one...)
ROMs up to 16Mb fully loaded into Slim's memory (Done, but going for 32Mb ROMs after my buffer work, however I may lower this if we have continued multi-ROM load crashes as 8mb isn't much faster than 16mb and increases initial load time)
Fix OSHLE Bug causing flashing bug in Mario Kart Pause screen (Done, same bug caused missing title flag)
Fix RSP Bug causing OoT (E) (M3) to crash (Done, also seems to have helped a few other crashes)
Fixed IA4 Textures (Zelda's Trees, the Drawings on link's tree house and a bit more. Note: SSB Items are not due to a texture conversion but rather a combiner bug.)
Per Game Save States (Done by Grazz, Thx)
Async Emulation Notes:
The N64 actually had two CPUs one of which was essentially a Dual Core CPU (But not completely separate cores as they shared functionality. They were the R4300i-based NEC VR4300 (@93.75 MHz) and the "Reality Co-Processor" AKA the RCP (@62.5 MHz) for a total of ~156Mhz. The RCP was broken down into two sections the "Reality Signal Processor" (RSP) and the "Reality Display Processor" (RDP). The RSP processes vectors and audio the RDP processes texturing. Now then due to the fact the the PSP has two processors similar to the N64 but in reverse we can use this to our advantage. R4300i doesn't need a VFPU(For vectors) or any of the GU Commands(for texturing), so it can be put on the ME (Which has access to neither of those) while the RCP can reside on the SP(The PSP's main processor). However because they're are not exactly the same and are also in reverse we have interpret/recompile the instructions and manage the overhead of them being backwards which will also be handled by the SP.(Since it is the one emulating a 62.5Mhz CPU rather than a 93.75Mhz CPU.) Overall this should net us in the neighborhood of a 70% overall gain. It's not quite double due to the extra management overhead just as with Async sound it cost about 1FPS when it was on and not completely free to use. Between this and better buffer management, better emulation of the CPU, code optimizations, and other innovative N64 emulation ideas(some done in recent commits) we should be able to close to double the speed of current emulation in most titles and more in some games (Banjo Kazooie is already about double) that need better emulation (aka closer to the N64).
I know that was a long read but I hope it was informative.
|
WAR10CK
Suspended due to non-functional email address
|
16. August 2009 @ 12:56 |
Link to this message
|
Thanks for sharing!
|
|