Release UAE4All 2.0


tuki_cat

Member
Joined
Jan 7, 2011
Messages
241
I've reverted to the previous version to get things working again, it seems that if I change the CPU speed at all above 600 in the UAE4ALL menu in the newest version, the system hangs on starting emulation (even though I already set a higher speed before starting the PND). I know others had a similar problem to this, how was it resolved in the end?
Have you tried disabling the warning messages you get when you overclock? Even if you up the CPU settings outside of UAE4ALL, I still found it hangs when you attempt to do this from within UAE4ALL. See Below from other thread.

I've reported your issues in the issue tracking thread:


http://boards.openpa...ad/#entry158536


Don't know why it doesn't work for you.

I can change cpu upto 800.. if I choose 900 or 950 it still sets it at 800 !
Are you talking about uae4all, the xfce slider or typing the cmd in a terminal?
I think I have worked out what is causing the lock up when you try to change clockspeed in UAE4ALL.


On a stock Pandora you get a warning message in a zenity box on the desktop when you try to overclock above 600mhz.


I switched off this warning (you can also change the clockspeed level that you want a warning) and now overclocking works within UAE4ALL 2.0. It appears that this warning box is somehow appearing in the background and causing a lockup.


New Pandora owners - don't turn off this warning message unless you know what you are doing!
 
Last edited by a moderator:

NoeleyC

Well-Known Member
Joined
Oct 23, 2008
Messages
1,348
thanks for the information, I'll try that later. I knew I had read something about that before, forgot to take into account there was a few UAE4ALL threads knocking around!
 

john4p

Active Member
Joined
Feb 29, 2008
Messages
992
Location
Germany
That's correct - savestates are broken in the current release.


Yesterday saw the functions save_cpu() and restore_cpu() (both are only a part of saving/restoring states) are empty in this new FAME/C-version.


Replaced the functions with the ones from the older FAME/C-release and now saving works, but restoring states still crashes the emu.


Could confirm that saving works correctly because the created savestate loads fine in the old UAE4All.


I'll later debug why restoring fails.
Thanks for checking this out! This is a topic of major importance for a number of games :)
Sorry - I couldn't manage to get savestates working.


As I said saving a state works now, but I tried to fix the restoring part for the last 2 days.


In the end I now can get it to restore a state so far that all savestate-debugging messages report success and the debug-output is identical to when I try to load the savestate with the old UAE4All.


But when restoring is "complete" the new UAE4All 2.0 only shows garbage on screen (while it works fine in UAE4All 1.x).


Tried a lot of stuff and debugged every part that's involved in restoring but now I'm out of ideas.


The old restoring method probably isn't compatible with the new FAME/C core.


Looks like you'll have to resort to the old UAE4All (which you can still select on startup) to use savestates.


Well, I only used savestates for fast loading of games anyway - but for that we now have WHDLoad (which also erases the need for disk-swapping and generally loads subsequent game-content faster).
 
Last edited by a moderator:

john4p

Active Member
Joined
Feb 29, 2008
Messages
992
Location
Germany
Yes, probably. I think the possible values for some variables and structures may have changed, but I couldn't identify them.
 

ekianjo

Hardcore Member
Joined
May 7, 2012
Messages
8,261
Location
神戸市、日本 (Japan)
Well, I only used savestates for fast loading of games anyway - but for that we now have WHDLoad (which also erases the need for disk-swapping and generally loads subsequent game-content faster).
I actually also use savestates for games without save features included. For example, the campaign (league) of Speedball 2. Or Turrican...


Anyway, I can use the old UAE to run these, so it's already a good thing. Thanks for all your work !


At this point will you continue working on UAE4All for new updates? ANything else there is to do at this stage?


(Hint: netplay, and 2 players/controllers support would be super)
 

john4p

Active Member
Joined
Feb 29, 2008
Messages
992
Location
Germany
Hint: netplay, and 2 players/controllers support would be super
Neither of those.


But I want to add the old A500 cycle-exact mode so we can play Wings and It Came from the Desert (and a few other titles) at the correct speed. I'd then add this mode to the old UAE4All, too - so you can use savestates...


Then I'll try to add hires-mode(s) to UAE4All 2.0.


Also if no one else has success I might have another go at the savestates issue.
 

ekianjo

Hardcore Member
Joined
May 7, 2012
Messages
8,261
Location
神戸市、日本 (Japan)
Thanks. all these additions are useful. Playing Wings at the correct speed would be very appreciated.


Regarding 2 players/controllers, is that difficult to implement ? The reason why I am asking is, there are many 2 players games on the Amiga, and having the possibility to map 2 controllers to Player 1 and Player 2 controls would be great when using the Pandora with TV-out. Some other emulators support that kind of thing.
 

john4p

Active Member
Joined
Feb 29, 2008
Messages
992
Location
Germany
The sources for joystick-input are weird (od-joy.cpp). I don't know how to "force" input for player 2.


But I think somehow it inherently already supports 2 joysticks. You could just try to add 2 pads via USB-hub and try to get them to work in our Linux. Then maybe they also work right away in uae4all...
 
Last edited by a moderator:

john4p

Active Member
Joined
Feb 29, 2008
Messages
992
Location
Germany
Maybe some structures changed?
You were right - the structure M68K_CONTEXT has changed:

fame.h said:
struct M68K_CONTEXT
{


struct M68K_PROGRAM *fetch;


struct M68K_DATA *read_byte;


struct M68K_DATA *read_word;


struct M68K_DATA *write_byte;


struct M68K_DATA *write_word;


struct M68K_PROGRAM *sv_fetch;


struct M68K_DATA *sv_read_byte;


struct M68K_DATA *sv_read_word;


struct M68K_DATA *sv_write_byte;


struct M68K_DATA *sv_write_word;


struct M68K_PROGRAM *user_fetch;


struct M68K_DATA *user_read_byte;


struct M68K_DATA *user_read_word;


struct M68K_DATA *user_write_byte;


struct M68K_DATA *user_write_word;


void (*reset_handler)(void);


void (*iack_handler)(unsigned level);


unsigned * icust_handler;


unsigned dreg[8];


unsigned areg[8];


unsigned usp; //<-- was named asp in old FAME/C


unsigned pc;


unsigned cycles_counter;


unsigned char interrupts[8];


unsigned short sr;


unsigned short execinfo;


uae_u32 vbr, sfc, dfc; /* Control Registers, 68010+ */


uae_u32 cacr, caar; /* Control Registers, 68020+ */



uae_u32 msp, isp; /* Master/Interrupt Stack Pointer */



};
So 7 new variables and 1 old changed its name. That explains why with uae4all 2.0 created savestates load in uae4all 1.x.


I'll try to handle the new registers as well.
 
Last edited by a moderator:

ekianjo

Hardcore Member
Joined
May 7, 2012
Messages
8,261
Location
神戸市、日本 (Japan)
The sources for joystick-input are weird (od-joy.cpp). I don't know how to "force" input for player 2.


But I think somehow it inherently already supports 2 joysticks. You could just try to add 2 pads via USB-hub and try to get them to work in our Linux. Then maybe they also work right away in uae4all...
You mean they could be supported out of the box, without doing anything ?


I'll definitely try.
 

Stainy

Advanced Member
Joined
Feb 28, 2005
Messages
1,144
Age
49
Location
Born UK Living USA
Quote from ToniWillen from EAB.


I'd do this (If debugger is available):


Call activate_debugger() immediately after state has been restored and compare memory map, CPU and chipset registers between working (any UAE version) and non-working versions.


Another quick and dirty test: save state immediately after loading broken state and check if it loads on any working UAE? (If it works -> not hardware state restore problem)
 

john4p

Active Member
Joined
Feb 29, 2008
Messages
992
Location
Germany
Ah, didn't see this - thanks for asking Toni. At least the quick and dirty test I'll do soon.
 

tuki_cat

Member
Joined
Jan 7, 2011
Messages
241
Yeah, hope that it helps sort the problem. If I can help with any testing than I am more than happy to.
 

itami

Still Fresh
Joined
Mar 7, 2011
Messages
71
020 cpu emulation runs at about half speed, it seems locked at 7Mhz.


Maybe the reason for the bad AGA game emulation?
 

john4p

Active Member
Joined
Feb 29, 2008
Messages
992
Location
Germany
Really? How did you measure that?


Banshee, Slam Tilt, Pinball Fantasies AGA and Watchtower run fullspeed (didn't test other games).
 

itami

Still Fresh
Joined
Mar 7, 2011
Messages
71
Not all AGA games need high cpu speeds...


With Sysinfo and other benchmarktools you can check cpu speeds, and no matter what setting I change in Uae the cpu speed is always the same... even over or underclocking the Pandora doesn't change anything.


If I do the same with P-uae or Pandeuae I can get better cpu speeds, resulting in higer/smoother gameplay... Only Pandeuae has no really AGA (some games/demos doe work but even worse graphics than Puae). And Puae is just slow...and it's AGA emulation is also not ok.
 
Top