Updated: News roundup

Tuesday, 25 April, 2006 12:00

Website changes

You see I've added a google search option and a PayPal button on the top of each page. I think it's useful to be able to search for a specific thing in the hundreds of pages of this website.

The PayPal button has been added because I'd like to get more attention to this. People get everything for free on the web, but what I'm doing for SEGA Saturn and SEGA VMU is not for free for me, if you understand what I mean. Donations are an importand thing to keep motivation, especially when working for dead videogame systems, which only a few people remember and even fewer care about the homebrew stuff. All in all, donations help answering the question "What am I doing this for?", which comes to mind from time to time in todays world.

The links to the source code of WinterSports Eins and Atlas have been updated.

SNES emulator progress

A lot has been improved in the SNES emulator for SEGA Saturn. So now it is the fastest of all 5 emus that I've ported to SEGA Saturn, though none of them is fullspeed yet. See some new screenshots.

sh assembler cpu core ported from Dreamcast to Saturn (faster, smaller binary, takes less high work RAM)

switched from sgl to SGL replacement (faster, takes less high work RAM)

switched from 16 bit to palette rendering (faster, takes less RAM, no in-frame palette change)

removed unused code with compile flags (smaller binary, takes less high work RAM)

optimized compiler flags (faster and smaller binary)

increased system clock from 26.8 MHz to 28.6 MHz (faster)

fixed frameskipping and controler reading

reduced binary size even more with various other methods

memory usage optimized: use VDP1 VRAM completely, VDP2 VRAM, sound RAM, low work RAM and high work RAM almost completely. The frame and z buffers have been moved to high work RAM, as well as all structures accessed by the sh asm cpu core (faster, can load bigger ROMs to cart: up to 3.5 MByte)

Unfortunately, the compatibility of the sh asm cpu core is not yet as good as with the original C core. Seems like a Dreamcast specific optimization hasn't been found and adapted to Saturn. But it works with a bunch of commercial ROMs like Desert Strike, Contra 3, Castlevania, Bomberman and Final Fantasy 2, to name just a few. The speed is better than I expected it to be. Most homebrew demos are playable with frameskip, a few are slower. Commercial ROMs are slower of course, but some have a surprisingly high in-game speed, like Desert Strike and Contra 3.

Compatibility when using the C cpu core should be similar to that of snes9x for windows (with same settings: palette), even some ROMs work on Saturn while they don't work on latest snes9x for Windows. This must be due to some setting in snes9x 1.43, which lowered compatibility compared to snes9x 1.41-1.

Unlike chui reported for snes4all on Dreamcast, on Saturn the gfx rendering is the bottleneck of the emu. You can easily see this when examining how the frameskip effects the framerate. The speedup is very noticeable. In fact I'm sure when the GFX rendering could be done by the Saturn video hardware (VDP1 and VDP2) or the slave cpu, then even some commercial games could get playable.

So the SNES emulator on Saturn got the potential to become really useful for gamers. The things left to do are increasing compatibility of the sh asm cpu core and implementing gfx rendering by using Saturns video chips. Two people have received the SNES emulator on SEGA Saturn for testing.

SGL replacement progress

I've added support for system clock change, so it now allows the use of 28.6 MHz system clock, which is 10 percent higher than the default 26.8 MHz. The controler status reading has been fixed and optimized. I added a compile flag NO_VDP1 which allows the use of the entire VDP1 VRAM, pretty useful for emulators, especially my SNES emu for SEGA Saturn. A couple of window related functions have been added. I'll add them to the function list on the SGL replacement website, later.

Most importandly, slave cpu support has been added. A lot of useful compile flags modify the behaviour of slSlaveFunc() to your needs. To my knowledge, this is the first time that non-SGL homebrew uses the slave cpu of the SEGA Saturn. It has been successfully tested with my Game Boy emu for SEGA Saturn.

Donation received!

A Saturn fan decided to support one of my Saturn projects and he donated 100$ to motivate me to continue that project. Thanks a lot for your support, I'll keep up the work!