Sunday, November 9, 2014

The first monthly beta. Release notice.

Hello everybody!

The project is moving forward according to the “Plan for Project Completion”. Today we set the new project’s milestone: the first monthly beta. This topic is a kind of press-release. According to the Plan, the following two tasks ware planned to accomplish in October:
  • Fix stability issues
  • Implement missing functionality to achieve compatibility equivalent to Glide64
1 . The first task planned on October was “Fix stability issues”. My experiments added a lot of mess into original code. I made massive code rafactoring to make the code clean again. I fixed many issues with program initialization and de-initialization, and now it is possible to run several games without closing the emulator after each of them. Switch between fullscreen and windowed modes, savestates loads also could crash the plugin. It is fixed. The task can be considered as completed.

2. As you know, GLideN64 is based on sources of Orkin’s glN64 graphics plugin. glN64 compatibility was “fair” on its release time, and today it can be considered as “mediocre”. It was good enough for my experimental works, but not for a public release of the new plugin. During my experiments I made no special steps to increase original plugin’s compatibility. No new ucodes were implemented. Many bugs in legacy code were not fixed. Thus, plugin’s code on start of crowd-funding campaign consisted of:
Original Orkin’s glN64 0.4.1 code + Linux port + Shaders + New frame buffer emulation + MupenPlus 2.0 port + GL ES port.
During October I tried to eliminate the chasm between Glide64, which supports almost everything almost flawless, and GLideN64. Here the short list of completed works:
  • Hardware mip-mapping emulation.
  • Emulation of low-level triangles (used for sky/water in Golden Eye, Perfect Dark, Killer Instinct).
  • Implemented missing functionality in F3DDKR microcode (Jet Force Gemini, Mickey's Speedway USA)
  • Implemented LookAt functionality.
  • Implemented point lighting for Zelda MM.
  • Implement microcode for Star Wars - Shadows of the Empire.
  • Implemented Turbo3D microcode (Dark Rift)
  • Implemented ZSort microcode (Telefoot Soccer 2000 and other soccer games)
  • Implemented microcode for Conker's Bad Fur Day.
  • Implement Sprite2D microcode. Fixed 2D in many games.
  • Make new implementation for S2DEX and S2DEX2 microcodes. Fixed 2D in lot of games.
  • Implemented YUV textures load.
  • Fixed 32bit RGBA textures load.
  • Fixed palettes load.
  • Fixed bugs in Video Interface emulation (wrong aspect, flickering etc).
  • Implemented gamma correction.
  • Various fixes in all around the code. 
To the end of October almost all emulation-related functionality of Glide64 was ported or reproduced in GLideN64. Users, who have access to weekly beta releases, may confirm that the plugin evolved greatly for this month. However, the chasm was too wide. Oliver found more than fifty serious issues. Thus, we decided to take one week for debugging. This week I worked hard to fix found issues, Oliver from his side opened the new ones. Most of found and fixed bugs resided very deeply in legacy code and I spent many hours to locate them. Currently the score of open and closed issues is equal.

What does it means? The goal of the first phase is not reached. Functionality of the plugin is close to the target, but existing bugs spoil the impression. Thus, the further plan needs correction. Next goal is high-res textures support. Since existing bugs must be fixed, this work also will be continued and will be done in parallel with the main task. The second phase is planned to accomplish in November and new monthly build with high-res textures support has to be released in the beginning of December. I already lost one week on debugging, so most likely the second monthly release will be delayed, probably to the end of December. If I will finish with bug fixes before high-res textures will be ready, I’ll release an update. Also, I want to remind you that you still may support the project.

I’m planning to make new videos which show the work in progress. So far, I can only show you the WIP screen shots (click to see full size image):

1 comment:

  1. This is exciting news. Thanks for the update and thanks goes to Oliver for finding more than fifty serious issues. It is feedback like this which will help speed the process along. Can't wait to see what end the end of December will bring to us :)