lxdream.org :: Forums :: View topic - My tests
lxdream 0.9.1
released Jun 29
Download Now
It is currently Tue May 21, 2013 11:12 pm

All times are UTC




Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: My tests
PostPosted: Thu May 05, 2011 1:20 pm 
Offline

Joined: Mon Mar 28, 2011 2:30 pm
Posts: 15
I thought it was best to create a topic for all the games I test with lxdream instead of one for each single game.

The first game is "Giana's Return", which is a freeware homebrew game, see http://www.gianas-return.de. After the Sega logo, there is only the message "Press Y for 60 Hz" displayed, after pressing Y, the screen is just dark.

I genrally have quite huge sound issues with lxdream, I mostly hear mush.


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Wed May 11, 2011 9:27 am 
Offline
Admin

Joined: Mon Jun 26, 2006 9:47 pm
Posts: 293
Riemann80 wrote:
I thought it was best to create a topic for all the games I test with lxdream instead of one for each single game.

The first game is "Giana's Return", which is a freeware homebrew game, see http://www.gianas-return.de. After the Sega logo, there is only the message "Press Y for 60 Hz" displayed, after pressing Y, the screen is just dark.


Ok, looking into this, it seems to be waiting for something to happen, but unsure what yet. So far I've fixed 2 other bugs that I hit while trying to test it, but not related to the actual problem.

Quote:
I genrally have quite huge sound issues with lxdream, I mostly hear mush.


The audio support needs a lot of work, yes

Cheers,
Nathan


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Fri May 13, 2011 3:55 pm 
Offline

Joined: Mon Mar 28, 2011 2:30 pm
Posts: 15
If tried out the game "Rush Rush Rally Racing Deluxe". It's a commercial independent game. It's region free and published on a CD, not GD-ROM.

The game stops after the Sega logo with the error message:

"Received bad packet: 01 00 01 00 A0 68 0C 0C 01 60 00 01"


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Fri May 13, 2011 9:02 pm 
Offline

Joined: Mon Mar 28, 2011 2:30 pm
Posts: 15
I've tried the US-version of Grandia II.

The cinematic intro runs at normal speed (>95%) most of the time, sometimes goes down shortly to 70%.
The in-game graphics are almost flawless concerning the 3D. There is some occsional texture flickering, and some minor problems with lighting (shadows).

The game's speed is between 50 and 60 % percent most of the time, most can break down to 20%-40% when the camera moves or a larger part of the environment is shown.

There is problem with the display of two-dimentional things like menus, HUDs or text: Everything that's somehow shaded is too dark on the upper half, and too transparent.


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Tue Jun 21, 2011 7:06 pm 
Offline

Joined: Mon Mar 28, 2011 2:30 pm
Posts: 15
nkeynes wrote:
Riemann80 wrote:
I thought it was best to create a topic for all the games I test with lxdream instead of one for each single game.

The first game is "Giana's Return", which is a freeware homebrew game, see http://www.gianas-return.de. After the Sega logo, there is only the message "Press Y for 60 Hz" displayed, after pressing Y, the screen is just dark.


Ok, looking into this, it seems to be waiting for something to happen, but unsure what yet. So far I've fixed 2 other bugs that I hit while trying to test it, but not related to the actual problem.



The same problem as with Giana's Return occurs with another freeware game by the same team, which is called "Sqrxz" and can be downloaded here:

http://www.sqrxz.de/?page_id=26


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Fri Jun 24, 2011 4:04 pm 
Offline

Joined: Mon Mar 28, 2011 2:30 pm
Posts: 15
Another game with the same problem as Giana's Return:
M.A. Software's " Abusimbel Profanation Deluxe", which can be downloaded from theire website:
http://www.masoftware.es/


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Fri Aug 17, 2012 11:16 pm 
Offline

Joined: Mon Mar 28, 2011 2:30 pm
Posts: 15
I have tried out Gunlord, a new independent game by NG:Dev. Team. So far, it worked welll and surprisingly fast.


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Sat Sep 01, 2012 2:30 pm 
Offline

Joined: Sun Feb 03, 2008 10:20 am
Posts: 18
Riemann80 wrote:
Another game with the same problem as Giana's Return:
M.A. Software's " Abusimbel Profanation Deluxe", which can be downloaded from theire website:
http://www.masoftware.es/


The attached patch fixed it for me. I couldn't try Abusimbel Profanation Deluxe (link is dead). For Giana's Return and SQRXZ, it looks like pvr2_next_frame() didn't load the new frame to the GPU. Invalidating the render buffers impacted by new DMA transfers forces it to load the new frames.

GIANA :
Image
SQRXZ :
Image


Attachments:
File comment: Patch to invalidate render buffers when new data is written to PVR2 via DMA (vram32 only is done).
pvr2_dma_invalidate.patch [2.72 KiB]
Downloaded 29 times
Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Thu Sep 06, 2012 3:15 pm 
Offline

Joined: Mon Mar 28, 2011 2:30 pm
Posts: 15
I have tried to apply the patch file, but I did not manage it. Either I'm too stupid or too ignorant.
I copied the lines of code manually into the program files and compiled again. Now the game also start on my computer. There are still some issues with them I have to regard, but both games to not disappear into Nirvana after the "Press Y for 60 Hz mode" message.

Thanks a lot for your help. :)


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Sat Sep 08, 2012 8:53 am 
Offline

Joined: Sun Feb 03, 2008 10:20 am
Posts: 18
Assuming you are in lxdream directory, this should work : patch -p1 < path/to/name.patch

Cool that it works for you too :-) We'll have to see with Nathan if this is the correct fix (entirely possible that I overlooked something). If it's correct then there's more to do. It only covers vram32 DMA accesses ; vram64 accesses would need to be updated too (and it looks more complicated).


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Sat Sep 15, 2012 10:47 am 
Offline
Admin

Joined: Mon Jun 26, 2006 9:47 pm
Posts: 293
guinux wrote:
Assuming you are in lxdream directory, this should work : patch -p1 < path/to/name.patch

Cool that it works for you too :-) We'll have to see with Nathan if this is the correct fix (entirely possible that I overlooked something). If it's correct then there's more to do. It only covers vram32 DMA accesses ; vram64 accesses would need to be updated too (and it looks more complicated).


Ah, good find, thanks! (with a side-order of 'how did I screw that up...') I guess that hasn't come up very often in the past.

I think the patch might need a little tweaking to cover the cases when a DMA transfer crosses page boundaries to ensure we get everything but otherwise looks good. And yes, the vram64 addresses and vram32 address should cross-invalidate as well to be strictly correct. Maybe this should be changed to have a single list for invalidation purposes, not sure.

Cheers,
Nathan


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Sun Sep 16, 2012 1:53 pm 
Offline

Joined: Sun Feb 03, 2008 10:20 am
Posts: 18
Hi Nathan,

Here's my take at trying to handle page boundaries :-)


Also can I ask you what your plans for lxdream are for the foreseeable future ? Here is a list of points I have kept track of :

  1. Finish Ram to Ram DMA and other DMA modes
  2. Fix interpreter (ocram page 0 handlers)
  3. glFlush not blocking emu thread (vsync)
  4. Invalidate render buffers on DMAs to PVR2 (from this thread)
  5. SH4 cpu cycle accuracy

Of which of course, 3 and 5 would be the most awesome to have in my opinion. Any hope of seeing this happening ? :o


Attachments:
File comment: Attempt at handling page crossing (for when virtual memory is on)
page_crossing.patch [6.32 KiB]
Downloaded 24 times
Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Sun Sep 30, 2012 2:01 am 
Offline
Admin

Joined: Mon Jun 26, 2006 9:47 pm
Posts: 293
guinux wrote:
Hi Nathan,

Here's my take at trying to handle page boundaries :-)

Hi Guinux,

Ah, that wasn't actually what I was referring to, but that has been an outstanding issue as well, thanks! I'll test it out and merge if all looks good. In the meantime I've merged your original patch as well, so at least this case is fixed. I'll look at the other cases later and see if they can be done reasonably simply.

guinux wrote:
Also can I ask you what your plans for lxdream are for the foreseeable future ? Here is a list of points I have kept track of :

  1. Finish Ram to Ram DMA and other DMA modes
  2. Fix interpreter (ocram page 0 handlers)
  3. glFlush not blocking emu thread (vsync)
  4. Invalidate render buffers on DMAs to PVR2 (from this thread)
  5. SH4 cpu cycle accuracy

Of which of course, 3 and 5 would be the most awesome to have in my opinion. Any hope of seeing this happening ? :o


#1 - Do you know of anything that actually depends on this?
#2 - I assume you mean the shadow execution issues - yeah it's mainly a matter of not slowly things even more to a crawl than shadow does already.
#3 - Looking to see if multithreaded rendering may work - that would in theory let us avoid blocking while still preventing tearing.
#4 - There's other outstanding issues here but more theoretical at the moment. Should still be fixed though yes.

I think the main items on my todo list, in no particular order
  1. Fix rendering performance (it's still pretty lousy compared to where it should be), probably still need to transform the scene graph back to untiled form. Shadow volume performance in particular needs work.
  2. Implement missing PVR2 features (accumulation buffer, bump mapping, handle intersecting translucent triangles in auto-sort mode).
  3. SH4 core performance improvements + cycle accuracy (register allocator, some basic optimizations, look into trace compilation)
  4. Fully implement the UBC (especially watchpoint support)
  5. Fix various sound issues (implement DSP, fix other problems, implement GD-ROM audio)
  6. Proper support for the on-board flash partition (erase etc aren't implemented yet)
  7. Add support for the ethernet adapter
  8. Get the BIOS replacement code to the point where it will actually boot real discs (if possible)
  9. Fix anything that's still not working correctly.
  10. Random small stuff like support for SBI "images", BIN/CUE, etc

Yeah... I'm not getting through that anytime soon. I've mostly been working on performance-type issues since the last release.

Cheers,
Nathan


Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Sun Oct 07, 2012 8:39 pm 
Offline

Joined: Sun Feb 03, 2008 10:20 am
Posts: 18
nkeynes wrote:
Ah, that wasn't actually what I was referring to, but that has been an outstanding issue as well, thanks!

Oh okay... ^_^

nkeynes wrote:
#1 - Do you know of anything that actually depends on this?
#2 - I assume you mean the shadow execution issues - yeah it's mainly a matter of not slowly things even more to a crawl than shadow does already.
#3 - Looking to see if multithreaded rendering may work - that would in theory let us avoid blocking while still preventing tearing.

#1 - Yes! Both Rush Rush Rally Racing, and the freely available Polyko game, seem to need memory to memory DMA case 0 to be implemented to start running in lxdream.
#2 - Not just a speed issue: interpreter (lxdream -x) is stuck after the swirl logo sequence (around 0x8c0083e8), GDB+shadow mode showing that interpreter hits the unmapped address space where translator (where it works) hits the ocram page 0 handlers.
#3 - Yay! This feature would be nice to have (all the others are nice to have too ;-)), supposedly some games (mostly homebrew) will be running at fullspeed instead of only around halfspeed now.


Attached, a backtrace of lxdream crashing in libGL on an old (5 years) computer with ATI card (the one I had my hands on this weekend :-)). Do you know what is happening?


Attachments:
File comment: Lxdream backtrace in gtk init with ATI graphics card.
lxdream_bt_ati.txt [34.49 KiB]
Downloaded 24 times
Top
 Profile  
 
 Post subject: Re: My tests
PostPosted: Mon Oct 15, 2012 11:28 am 
Offline
Admin

Joined: Mon Jun 26, 2006 9:47 pm
Posts: 293
guinux wrote:
nkeynes wrote:
Ah, that wasn't actually what I was referring to, but that has been an outstanding issue as well, thanks!

Oh okay... ^_^

nkeynes wrote:
#1 - Do you know of anything that actually depends on this?
#2 - I assume you mean the shadow execution issues - yeah it's mainly a matter of not slowly things even more to a crawl than shadow does already.
#3 - Looking to see if multithreaded rendering may work - that would in theory let us avoid blocking while still preventing tearing.

#1 - Yes! Both Rush Rush Rally Racing, and the freely available Polyko game, seem to need memory to memory DMA case 0 to be implemented to start running in lxdream.
#2 - Not just a speed issue: interpreter (lxdream -x) is stuck after the swirl logo sequence (around 0x8c0083e8), GDB+shadow mode showing that interpreter hits the unmapped address space where translator (where it works) hits the ocram page 0 handlers.


Gah, I thought I committed that part of the fix, but apparently not, sorry. *sigh* Pushed now, anyway. Trouble is I'm pretty sure it's also quite broken in MMU-enabled modes, so needs to be fixed 'properly', not to mention the shadow problem.

guinux wrote:
#3 - Yay! This feature would be nice to have (all the others are nice to have too ;-)), supposedly some games (mostly homebrew) will be running at fullspeed instead of only around halfspeed now.


Attached, a backtrace of lxdream crashing in libGL on an old (5 years) computer with ATI card (the one I had my hands on this weekend :-)). Do you know what is happening?


I don't know specifically, but from past experience, ATI drivers are pretty bad, and the open source drivers are usually worse (in terms of compatibilty) so probably tripping over something unimplemented. Hard to tell exactly what though, you can try the --sync and see if that gives you something more useful.

Cheers,
Nathan


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group