Okay guys some NEW news!
Since I lack the time to make a proper post at the moment, I'm just going to Quote JollyRoger's posts from Assemblergames.com.
To go along with Jolly's news, I'm also preparing a new cleaned up level pack containing more 037 compatable levels to go with the last v037 engine release.
Quote
Some more news: finally I got the sync code working properly, the engine now doesn't crash trying to force the VDP1 to draw while the framebuffer is changing without proper management of the end of write flags in the vblank interrupt.
I actually changed the code to not use the VBE erase/draw pass in the vblank, as from my tests I remember it was more beneficial to use a large polygon to clear the screen instead, and it makes the code less dependent on synchronization with the vblank, which in turn frees up some CPU cycles to do some work.
I also tried to do a full double buffer overlap between the VDP1 drawing and the CPU writing the new display list, but it was a naive attempt, as the code is really not written to access memory properly and in the end it made the frame rate actually slower due to contention between CPU and VDP for access to the framebuffer SDRAM.
With that largely out of the way, I fixed another giant issue in the polygon camera projection code, which did not perform any clipping whatsoever. For now the fix is just to identify troublesome polygons (exceeding the VDP1 coordinates region) and not draw them, eventually I will write a proper clipping fix.
The engine now seems to be relatively robust, using a very basic level it doesn't crash all the time, I can actually move Sonic around the level (slowly at times due to frame rate).
Depending on the amount of polygons and their size, the frame rate varies between 10 and 25 FPS, even 30 when the screen is mostly blank.
The way the rendering engine is written performs very poorly on the Saturn, which needs to overlap as much as possible CPU work with the VDP1, so eventually we will have make some pretty radical changes to speed it up.
Finally I can now resume working with Andrew75 on loading more complex levels, but first I would like to try to make a very simple "as-is" release, similarly to what we did for v37.
After the work on loading other levels I will get to profiling which parts of the code suffer the most and start tuning.
Stay tuned...
Jolly
Quote
The plan is to progressively try to make it more playable, once the "as-is" code is in a state where it doesn't break all the time, but I it will likely never get to the level of AXSX, as I am doing this mostly for preservation rather than developing the game, and I just don't have the time.
Something I was considering is that perhaps at some point during the summer I could try to expose some of the engine internals through an API and release a binary that people can link other C code to, or embed in the engine a LUA interpreter so that people can add a better control system and perhaps AI for the baddies.
Just thoughts for now, but this would allow me to release something that people can extend/mod, without releasing the source code.
As for the editor, now that I am a bit more relaxed (fixing the Saturn interrupt data races is not too fun) we can prepare the v37 editor (on OpenGL) for release too.
Jolly
This post has been edited by Andrew75: 30 March 2015 - 11:30 AM