Page 1 of 3

Exodus 2.1 release soon (Now available!)

Posted: Mon Aug 27, 2018 12:46 pm
by Nemesis
I'll be making a new release of Exodus sometime within the next week. This release will mainly consist of bugfixes and performance enhancements. You can check the commit history on the Bitbucket repo to see what's gone in so far. There will probably be a few more changes over the coming days.

Also, for those of you who've been using Exodus in the years I've been neglecting it, I suspect you've encountered one or two bugs that have caused you grief, features you'd have liked that weren't there, or games that don't work the way they should that you'd especially like to see fixed. If there are any particular issues you'd like me to look at, let me know now, because I'm pretty flexible on what to work on at this point.

EDIT: Exodus 2.1 is now available for download from http://www.exodusemulator.com

Re: Exodus 2.10 release soon

Posted: Mon Aug 27, 2018 4:18 pm
by tryphon
That's great news !

I wanted to ask : which is the best way to ask for features, if possible ? I can't see a "request" section on bitbucket, but I don't know this platform and I'm using my smartphone, which is probably not the best way to navigate...

Re: Exodus 2.10 release soon

Posted: Tue Aug 28, 2018 12:29 am
by Nemesis
The best place is right here in this forum. This is a niche interest project, and the userbase will have shrunk over the last few years of inactivity. I don't expect to be swamped with more requests than I can manage myself, so just ask for them here. That'll give other people a chance to see them and comment, and I'll be able to pick them up and transfer them to my own list of "to do" items.

Re: Exodus 2.10 release soon

Posted: Tue Aug 28, 2018 6:48 am
by tryphon
OK, so here is my first request :o

I use Exodus for development purposes, and especially for SGDK projects. Would it be possible to implement kaneda's log features, allowing the kdebug.h module in SGDK ?

Basically, as far as I understand it from this file, it uses surnumerous fake VDP registers to allow communication between the MD and the emulator, allowing some things like :

* displaying text in a separate console window
* pausing the game
* timing

I use it a lot to debug my code, which forces me to use Gens (a good emulator, but not faithful enough, I miss numerous bugs that only Exodus lets me reproduce). I'd like to switch to Exodus as main dev tool :)

Re: Exodus 2.10 release soon

Posted: Tue Aug 28, 2018 7:12 am
by Nemesis
I know absolutely nothing about this, but I'll look into it.

Re: Exodus 2.1 release soon

Posted: Tue Aug 28, 2018 8:50 am
by tryphon
Thanks :)

It seems really straightforward, tbh I'd have implemented it myself if I knew how to create a console window...

And how to setup a compilation chain :D (I use SGDK with a text editor and a terminal, like a 90s Linux user :D )

Re: Exodus 2.1 release soon

Posted: Wed Aug 29, 2018 12:09 am
by Nemesis
Changes all done and pushed to the repo. The feature is off by default, but you can toggle it on in the settings. System savestates store the debug state (IE, timer progress and partially written text output), and debug savestates store whether the debug feature is activated. Text output goes to the event log. The timer feature didn't seem to work properly in Gens KMod, at least in the version I tried. It kept giving impossible negative numbers, but it's working right in Exodus. The changes will be in the next release.

So, anything else? :)

Re: Exodus 2.1 release soon

Posted: Wed Aug 29, 2018 3:19 am
by Huge
Nemesis wrote:
Wed Aug 29, 2018 12:09 am
So, anything else? :)
Yeah, Saturn emulation :D

Re: Exodus 2.1 release soon

Posted: Wed Aug 29, 2018 4:10 am
by Nemesis
Huge wrote:
Wed Aug 29, 2018 3:19 am
Nemesis wrote:
Wed Aug 29, 2018 12:09 am
So, anything else? :)
Yeah, Saturn emulation :D
One day, but not today. :) I'll probably push more into the Sega arcade systems next. After that I'll swing back around to the SegaCD, then the 32x. The 32x will be a stepping stone on the way to the Saturn, as I'll have to put together an SH2 core. Since I'm building all my own CPU cores from scratch, and building them for crazy debugging features (IE, active disassembly), it takes a bit longer to branch out to entire new platforms that don't build on existing ones.

I took a look today at adding a GDB debug link from Exodus. Looks pretty straightforward. I'll probably start playing around with that, shouldn't take too long to get it all up and running.

Re: Exodus 2.1 release soon

Posted: Wed Aug 29, 2018 9:11 am
by tryphon
I must admit I didn't dig too much so maybe there's already a way to do it :

is it possible to have some mean to measure the input lag of a game ?

It seems that it's impossible to have less than 2 frames between the actual push on a key, and its action onscreen.

While developping small(or not so small) games, I sometimes went up to 3-4 frames. It's impossible to spot exactly at normal speed, so what I do for now is to use Gens-r57shell, display frames counters and input, and capture a video (that I play image by image). Is any of this possible on Exodus ?

Edit : oh, and I'd love a good Sega CD emulation :)

Re: Exodus 2.1 release soon

Posted: Thu Aug 30, 2018 12:17 am
by Nemesis
Sure, not a problem! You can do that right now in the current release. Basically, you just need to underclock the whole system. Exodus accurately emulates the clock system of the real hardware. If you underclock it, everything will slow down, but stay in time with each other. Go to the "Modules" directory, and crack open the "Sega Mega Drive 1600.xml" file. Head down to the section that starts with a comment for "System Region Setting". Create a new dummy region, like the following:

Code: Select all

		<System.Setting.Option Name="U" DisplayName="North America Underclock" Default="True">
			<System.SetClockFrequency TargetClockName="MCLK" ClockType="Direct" Value="536341" />
			<System.SetLineState SystemLineName="NTSC" Value="1" />
			<System.SetLineState SystemLineName="JAP"  Value="0" />
		</System.Setting.Option>
Here I've taken the US region settings, but knocked a few digits off the clock frequency (536341 instead of 53634165). Start up Exodus, and load a ROM. Now hit F2 to pause, go to "Settings->Mega Drive->Region". and pick your dummy region. Now hit F4 to reset, and F3 to start running again. You should see the FPS running much, much slower, but it isn't lagging, that's the new output framerate from the VDP with the lower clock rate. Since that isn't very playable, hit F9 to turn off throttling. The game will now fly along as fast as your system can manage. Start up the game and get to a point where you want to measure the timing. Now press F9 again to turn on throttling, and the game will slow down to a crawl. Do your frame counting there, same as what you're doing on the video, but it's live in the system.

Be aware, you shouldn't try and load savestates which were created in the underclocked system in the normal speed system, or vice versa. Clock speeds are currently persisted to the savestate file by some devices, but not all of them. The consequence is that if you mess with clock rates externally like this, not everything will come back up with the right timing. I'll look at fixing that up. Unless the clock rates are overridden, they should be reloaded when the state is restored.

Re: Exodus 2.1 release soon (Now available!)

Posted: Thu Aug 30, 2018 7:09 am
by Nemesis
Exodus 2.1 is now up on the website here

Re: Exodus 2.1 release soon (Now available!)

Posted: Fri Aug 31, 2018 2:56 am
by Huge
If I may say, it is great to have you back developing stuff. The projects you are handling are all truly one of a kind in how advanced they are, and it is great to see them progressing even if I personally can't make any use of them.

Re: Exodus 2.1 release soon (Now available!)

Posted: Sat Sep 01, 2018 9:04 am
by Nemesis
Thanks, I appreciate it. :D

Re: Exodus 2.1 release soon (Now available!)

Posted: Sat Sep 01, 2018 10:58 pm
by tryphon
Same here. I use it for developping my projects, and it already helped me to spot bugs other emulators didn't reproduce.

The real testing is on real hardware, but I'm yet to find a bug Exodus would have missed...

Thanks a lot :)