Sunday, 06 May 2007
Ziggy on emutalk released a very experimental LLE graphics plugins for N64 that he started to develop about a month ago. He has called it Z64. It is originally based on the excellent work of Ville Linde in Mame/Mess, even though there isn't much of his own code left, it was the starting point of this project. This will run on project64 1.6. So if you want something new to play with and try LLE graphics emulation for your self give it a try.
You can get all the binaries and information from this emutalk thread.
Saturday, 14 April 2007
- Fixed antialiasing validation for fullscreen
- Added an additional texture dumping option
- Major cleanup - things may be broken
- 1080 - frame buffer fixed
- Mario Kart J - frame buffer emulation
- Pokemon Snap - album works now
- FIFA98 - field fixed
- Jet Force Gemini - texture bugfixes
- Software rendering optimization
- FZERO-X - fixed overflow issue
- Remove button added Texture pack picker
Monday, 09 April 2007
Before we start with the best part of this blog series, if you haven’t read the first part I suggest going back a few posts and doing that, its kind of a prerequisite.
Now that our textures are baked … er dumped, we have made a replacement for a texture and we want to test it out in a game, we take the replacement texture of the same name and place it in the textures-load folder underneath the PJ installation folder. This is a simple, yet effective way to start testing new images, no fuss just – moving files. 32-bit RGBA PNG files are supported … as well as the preferred format of DXT compressed textures since they are significantly smaller and load fast.
To make a bunch of textures into a pack you simply put them into a zip file, with a file in the root called 'pack.xml'. As you can guess PJ supports the ability to load textures from a zip file, so you don't have to extract hundreds of images as well. Below is an example pack.xml from a mario kart texture pack.
<?xml version="1.0" encoding="UTF-8"?>
<pack>
<supported>
<rdb>C3B6DE9D-65D2DE76-C:50</rdb>
<rdb>2577C7D4-D18FAAAE-C:50</rdb>
<rdb>6BFF4758-E5FF5D5E-C:4A</rdb>
<rdb>C9C3A987-5810344C-C:4A</rdb>
<rdb>3E5055B6-2E92DA52-C:45</rdb>
</supported>
<author>Kerber2k</author>
<version>1.2</version>
<description>Mario Kart Pack</description>
</pack>
This complete package defines what games it applies to, as well as who created it. For a user who downloaded this zip file to their desktop -- they can either right click in the rom browser and select "Install Pack" from the menu or manually move the ZIP file into the textures-load folder.

This next part is cool, and one aspect I’m particularly happy with. To use the texture pack right click on the game you want to play and click “select texture pack” as shown above.
This dialog will show you all the available texture packs available for the game that you selected as well as the one currently in use for that particular game. The nice part about this is you can have multiple packs installed for multiple games at once.
So in closing, this is one feature people have wanted the PJ core team to have for a while, I know it took a long time but I think it was well worth the wait
Monday, 12 March 2007
During the years of development for 1.6, Gent and by proxy others, had suggested supporting the capability of loading external content to spice up the emulation. It’s no secret I’m always short on time and patience for features -- the story finished with 1.6 not having this feature. As it turns out this was probably good as it gave me more time to fully understand things. External content sort of fell into two categories -- the textures themselves, as well as the actual geometry the game was rendering.
In this first part we’ll start by exploring how the texture dumping functionality works. Below you’ll see a screenshot for the ‘Advanced’ tab in the 1.7 graphics configuration dialog – notice the option that is checked for dumping textures. When this is checked as textures are loaded during play they will dumped, as 32-bit PNG files, as illustrated below for Super Mario 64.
Directory of C:\PJ64\textures-save\Super Mario 64 (U)
03/10/2007 09:18 PM 607 10F7B0922846C9D92C40C964090AD2B1.png
03/10/2007 09:18 PM 363 11D4903001A11106838E2B89F0BE9A7E.png
03/10/2007 09:18 PM 408 13045FB1954F0BE92ACAE49B37E89BBA.png
03/10/2007 09:18 PM 292 1AC3EA0D9736AEF0C359D3D9BDABD034.png
03/10/2007 09:18 PM 217 39DD097B42DC1960BFF31BB3DD5CA19B.png
03/10/2007 09:18 PM 321 4F130AFC0D5D396897DFC78685FE6999.png
03/10/2007 09:18 PM 328 6371374CFAA316D45208DEDBF5C1D9BC.png
03/10/2007 09:18 PM 298 6C17ED6DE8245D810124F7D4D5AA29A1.png
03/10/2007 09:18 PM 2,394 8D24C7FB8733864F2988B5F529536C6C.png
03/10/2007 09:18 PM 839 91A7821BEFBAEE37E6650B85BA19B02C.png
03/10/2007 09:18 PM 310 9D3739BDED4F87C84E06D94422B33760.png
In the next part of this retrospective I’ll talk about what exactly makes a bunch of textures a ‘pack’, texture compression, and how this all translates to users being able to select which pack they want to use for a particular game. Maybe a game screenshot or two -- who knows!
Saturday, 10 February 2007
One of the things notably absent from the release in 1.6 was any frame buffer emulation for the much beloved Mario Kart 64, at the time I thought it wasn't a big deal really, boy was I wrong. I've seen countless posts on emutalk about this topic, and how horrid the "Copy to RDRAM" option was. More recent discussions centered around PCI Xpress graphics cards revealed they could accomplish it in real time, but let's face it that is still primitive.
Beta program members made sure I hadn't forgotten about this of course and I decided it was time to take another look at properly emulating this, and I think the results were rather good.

All we need now is netplay right?
With this new build available on the site (with lots of other goodies), it's time again to figure out what needs to be done for the next release in a few months, I have some ideas naturally. Anyway I hope everyone enjoys these kinds of updates, I think a little more transparency with some of the features in 1.7 is a good thing, I hope everyone can participate.

