Snes9x.COM: Developers Journal

 

3D Card Support Update
You might be wondering why I haven't released v1.19 yet, well I'm still fixing bugs in the new graphics code.

I do 99% of all Snes9x development on a notebook computer running Linux so most of the time I don't have access to a 3D card to test code on; I was hoping to use the same SNES graphics drawing algorithm for software and 3D card rendering, but its seems not to be possible.

To correctly implement the SNES translucency effects on 3D cards, background and sprite rendering will have to be in strict pixel depth order; this will mean having to make two passes for each background layer and unfortunately the sprite-to-sprite priority bug will be back.

Software rendering can use a separate sub-screen and two z-buffers and will only need a single pass per background layer and the two z-buffers will fix the current sprite-to-sprite priority bug and a fixed-colour translucency effect bug.

Once I've shaken out all the remaining bugs I've found in the software rendering code, I'll make a release, then start work on the hardware rendering. Support for 3Dfx cards will be first using Glide because Glide is available under Linux and I own a voodoo card; next will be OpenGL, then possibly Direct3D.

Glide support on the DOS port might not happen because the Glide library for DOS shipped by 3dfx Interactive is for a different C compiler than the DOS port is currently built with.

Also, for people with cheapo ViRGE chip-set graphics cards, hardware rendering will never work because they do not support z-buffering and transparent pixels correctly.

Gary, 22-4-1999 08:01:00

 

Snes9x 1.19 Update
You might have noticed a lack of updates to Snes9x over the past few months; well I'm still working on Snes9x, its just my time is being spread a bit too thinly at the moment.

For one my wife gave birth to my second daughter, who promptly became ill and had to go back to hospital for a few days, and my eldest daughter, aged 5, not wanting to feel left out, also became ill for the first time in her life and also had to go to hospital. Three weeks later, both daughters mostly recovered and I'm now working on Snes9x again part time.

I'll post a sequence of messages here updating you on what I've been doing to Snes9x lately, including stuff that normally doesn't make it to the CHANGES file. But the kick things off, here's the current contents of the CHANGES file; stuff that definitely will be in the next release:

  • Now I've got a z-buffer I keep finding other ways to optimise the SNES graphics rendering - no need for a separate sub-screen, no need to clear the sub-screen to the fixed colour, no need to waste CPU time on transparency effects on hidden pixels, no need to completely clear the main-screen to the back drop colour, etc., etc. 

  • Implemented a software z-buffer and changed the SNES graphics rendering to use it (required change for future 3D card support). Finally fixes the sprite-to-sprite priority bug that some games suffer from. Also a big speed increasing for some games (10 fps+), others are slight losers.

  • Added code to skip the rendering of completely transparent graphic tiles rather than comparing each pixel to see if it is transparent; helps the frame rate a bit on some games.

  • Added a fix for Tetris & Dr. Mario - the game didn't like a multi-player 5 adaptor plugged in to the real SNES when being played, so turned off the adaptor emulation for this game.

  • Added hack for Final Fantasy II - if sync sound isn't on, make attack rate of 1ms actually 0ms (old v1.16 behaviour). Causes a slight click but its better than samples being cut short.

  • Fixed a clip window area invert bug if the colour window was enabled on on one window and the other window was being used to clip a background layer. Fixes the finial (I hope) display problem with Gun Hazard.

  • Added code to intersect the clip window areas if both a colour window anda background layer clip window were enabled at the same time. Required by Gun Hazard.

  • Forgot to mark graphic clip windows as needing recomputing when the master colour window inside/outside/on/off/main-screen/sub-screen PPU register was updated. Was causing display problems for Gun Hazard.

  • Internal H-DMA execution accelerator pointer variables where not always being recomputed when started H-DMA part way into a frame. Was causing display problems for Gun Hazard.

  • Made H-DMA continue for one extra scan-line to fix a disappearing monster problem in Dragon Quest 5. Thanks to Alex Jackson for the bug report.

  • Zoop seems to require volume envelope height reading by the sound CPU to always return 0 when the channel is in gain mode.

  • The sound code was ignoring updates to the ADSR volume envelope rates while one was in progress. Fixed that and now the bird song at the start of Chrono Trigger sounds correct.

  • Had to disable the CPU shutdown code for loops reading the horizontal beam position, it was causing problems for Star Fox. Still no polygons though.

  • Oops, sound DSP noise output was broken - accidentally deleted an important line while removing debug code ready for the last release.

  • Added initial 3Dfx support to the Linux port - basically using the Voodoo card as a bi-linear filtering, scaling blitter. Actually slightly slower than TV mode, for non-scrolling images due to poor texture upload speeds to the card, but the full-screen feature is nice and the speed doesn't drop as more of the screen changes.

Gary, 22-4-1999 00:02:00

 

Snes9x DOS 8-bit
I just felt that I should update the state of the DOS port. Myself having been busy with college, have only fixed one major problem. With the help of Charles Bilyue' of SNEeSe the problem of the ugly colours in the 8-bit GUI has been resolved. Also, Kreed has made an MMX version of his interpolation engine and has also made a new version of the actual engine. I'll try to add a bit more for the next release.

TeleKawaru, 20-4-1999 06:13:00

 

Just a test
Just wanted to see how it worked; how lines get wrapped and so on. If this works ok
I'll type up an update on the current state of Snes9x and post it here tonight.

Gary, 20-4-1999

 

Current date & time's on the site
As you may have noticed some of the dates are not exactly correct, this is due to the fact that the page was made over a series of days and with the download page it was unknown when the ports were last updated. These dates will be correct in future updates.

Jerremy, 19-4-1999 17:20:00

Go back in time

Snes9X.COM
Back

Filter on
Funkyass
7/4/2006 9:51:00 PM
Gary
10/15/2001 1:20:00 PM
Jerremy
6/8/2001 10:22:00 PM
Mkendora
12/4/2003 6:59:00 PM
TeleKawaru
4/20/1999 6:13:00 AM
All

DisclaimerView our Privacy Policy
The Snes9X team is not connected or affiliated with any mentioned company in any way. The opinions of the Snes9X team do not reflect the views of the various companies mentioned here. Companies and all products pertaining to that company are trademarks of that company. Please contact that company for trademark and copyright information.

Copyright 1998,1999 Webmaster