SVN migration finished and other news

This is a quick update to let you all know what we’ve been up to.  For those who have been monitoring the googlecode project, we’ve finally finished migrating all of our code changes to the public svn!  That means the beta1 tagged code is the same code that was used to compile the Wii64/Cube64 Beta 1 release version.  We thought the migration process would go much quicker, but the length of time for the migration testifies to the amount of effort put in to get the emulator ready for a beta release!

We’re in the process of preparing Beta 1.1, which will have some exciting improvements.  We thought that we would push out a minor revision very quickly, but our wishlist for the revision grew, and we have a couple important things to add to it that are holding up the release.  Don’t worry though, as it will be worth the wait.

In parallel we’ve been making significant changes to WiiSX/CubeSX.  There is still a lot of work to be done in re-organizing and cleaning up the PCSX code base.  We are hoping that as we tidy things up we’ll be able to fix bugs in the emulator.  We’re not sure when the next release will be, yet, but look forward to major improvements when you see it.

WiiSX/CubeSX Progress & Beta 1

As you may recall, WiiSX was put aside for us to all focus on Wii64. However, I picked it up again over the past weekend and made a few improvements along with a bit of help from tehpola. I ported over the pcsx-df code which is an updated and less-buggy pcsx codebase which instantly gave us great compatibility results in the Interpreter.

However, I then got the PowerPC recompiler (Originally from here coded by Gil Pedersen) working. It didn’t take much to get it into a operational state, just making it not mess with the GPR r13 to comply with EABI standard got it working, as well as some other small tweaks here and there. I also added some more functionality to it (recompiled all loads) and gave it 8MB of memory to keep recompiled code in (this is 7MB only for GC), but will gradually get bigger as I move things to MEM2/ARAM. There’s quite a bit to be improved within the dynarec, and quite a bit to be coded still, but I’m quite happy with its performance all things considered.

The GUI is non-existant apart from two options and a text based file browser. You can choose between the Dynarec or Interpreter and a Standard Controller or a Analog Controller. The analog controller is broken in some games, and so is the Dynarec (Final Fantasy VII battles).

Of course there is quite a bit to do, such as XA audio, CDDA audio, a GUI, Save states, .iso support, and much more, but this project will go on the sidelines again until the Wii64 beta is released. We hope to see positive some contributions to the code in the meanwhile whilst we work on Wii64 and not just controller config hacks :)

The full source (now updated with my latest changes) is available at http://code.google.com/p/pcsxgc/.

You may download CubeSX and WiiSX beta files from the pcsxgc GoogleCode site.

Instructions are provided in the readme.txt file in each respective archive.

April 1st Tiizer is Real & General Update

First off, the April 1st Tiizer video is actual gameplay using a recent dev build of Wii64. As you can tell, tehpola has made tremendous progress in debugging and optimizing the dynamic recompiling core. However, there are still a handful of showstopping bugs that we need to work through before we can make a public release. Also, you should be aware that not all of your favorite games will run on the initial release because of a variety of reasons. We are not planning on initially supporting the Expansion Pak because of memory limitations. After further optimizations, tweaks, and profiling to reduce our memory consumption, then we hope to add Expansion Pak support. We may not initially support games that execute code directly from the cart or that use virtual memory (i.e. Goldeneye) because this requires more investigation and significant code changes in the dynarec to implement. Also, some graphics microcodes aren’t supported in glN64, so a few games such as Conkers BFD won’t work just yet. But, sit tight and we’ll continue to work on more features for Wii64 after the initial release.

A complete re-code of the Wii64 gui is underway, so you’ll be able to enjoy using the wii-mote for navigation and also some sleek new graphics. We’ll have a new look for the initial release, but we also plan on adding more features to the gui over time for your enjoyment.

If you have watched any of the recent gameplay videos, then you know that the accuracy of the glN64 port has increased substantially since the Wii64 Tiizer release we made for the Homebrew Channel. Because GX is not 1:1 with openGL, there was a lot of investigation and tweaking required for me to get the behavior on GC/Wii close to what glN64 looks like on PC. There are still a variety of bugs for different games, so don’t expect everything to look perfect, yet. Emu_kidid is a great tester, and he is maintaining an internal graphical issue list to work on. I hope to add a couple more features to glN64 prior to release, including glN64′s primitive framebuffer texture support as well as 2xSaI scaling for textures. The plan is, of course, to continue hunting down bugs and adding features after the upcoming release.

As for the other graphics plugins, glN64_GX is much faster than both soft_gfx and GX_gfx, so we may only release a build with glN64_GX. The only drawback is that currently glN64_GX won’t render graphics for demos that only directly manipulate the framebuffer with the CPU. However, when I have time I’ll add a feature into glN64_GX that will allow it to render the N64′s framebuffer rather than rendering primitives passed through the N64′s graphics pipeline. Then, you can just flip an option in the menu when you are running homebrew N64 games and demos that write directly to the framebuffer. Also, I have already done some work on porting Rice’s video plugin to Wii64. Rice supports more microcodes than glN64, including the one that Conkers BFD uses, and it should be faster than glN64. We have a vision of supporting custom texture packs in Wii64, so we will implement that feature as well. We hope that you, our users, will contribute your creative talents in developing texture packs to share with the Wii64 community. We can’t say when custom texture pack support will be finished, but expect it sometime in the future.

Some of you have been asking for an update on WiiSX. We are planning on working on a release of WiiSX after the upcoming Wii64 release. The reason we have not done a release yet is because there were some serious bugs in SVN last fall, and we also wanted to focus on completing Wii64. We have since resolved some WiiSX issues, internally, and so once Wii64 is out the door, we feel that we can also follow up with a WiiSX release relatively soon afterwards.

Finally, we’d continue to ask that if you enjoy using Wii64 when it’s out that you consider donating to the project. Right now, most of the donations we receive go toward hosting costs. However, there are also some small accessories like component cables and classic controllers that we are considering purchasing with donation funds to aid in development.