uo_Snes9x 0.02pd2

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
Andon
Posts: 15
Joined: Sun Jul 10, 2005 10:01 pm
Location: Florida

uo_Snes9x 0.02pd2

Post by Andon »

0.02pd2's in SVN right now, in fact it's been there for well over a week. It's not finished and ready for release yet, but I wanted to mention it and request help optimizing the tile drawing code (see below).
  • I added a new file manager where you can copy/move files around on your Memory Stick and even copy/move files between Memory Sticks (however, files > ~3.5 Mb or so will require multiple swaps, because the available heap memory is very small).

    I translated the file delete confirmation dialog in the file selector

    I improved the battery stats to include estimated (the Kernel's estimation, not my own :P) runtime and corrected the reported percentage.

    Corrected a bug where the PSP would completely hang if you exited from the Home button menu while in the file selector. As far as I know, this still affects 0.02y29+.

    Cleaned up the SceGU backend, giving it similar interfaces as the Snes9x OpenGL backend.

    When using the SceGU backend, the scissor region is now set appropriately, so that the unused portions of the square render texture are not drawn. (This was most obvious in "Normal" mode or "4:3" with HiRes mode enabled).

    ROMs that use 239 scanlines ("Overscan") are properly handled within the SceGU backend now.

    Cleaned up the code in psp.cpp... If you intend to do a diff vs. a version of y's port, make sure you enable "ignore whitespace" :)

    Because of the new file manager, you need to use START + SELECT to exit the game from the menu now. This has always been possible, but there used to be a menu option that did the same thing.

    Similarly, there's no continue menu option... Simply press X to close the main menu.

    Integrated all of y's "optimizations" from 0.02y28. A lot of them really have no measurable performance increase and some of them even break compatibility with certain games unfortunately. I'll systematically revert the ones that are causing issues before 0.02pd2 is officially released.
On the note of optimization, I'm looking into optimizing the tile code to use the GPU at the moment. This is the one key area that's keeping Snes9x from running at "full speed" on the PSP. Optimization really needs to be focused on this and not the more trivial things y's been working on.

I have discovered through a lot of hard work (sucks without gprof support) that branching is what's killing performance in the tile drawing code. If you take out the if (...) branches and perform every operation over every iteration of the loops, the framerate shoots up a good 15-20 FPS. While I'm going to attempt to attack the situation using the GPU, someone who's skilled with MIPS assembly may want to write optimized variants of DrawTile16 (...) and DrawTile16_OBJ (...) (see gfx.cpp and tile.cpp) that use conditional moves instead of the more expensive branches; that would help performance tremendously.

Attacking the issue with the GPU in mind is a major challenge. First of all, the SNES hardware has the capability to change all sorts of things between scanlines, and a tile's "depth" (or priority) is on a per-pixel basis. This is difficult to handle on the PSP, which has a fixed function fragment pipeline. So it may prove futile, but I'll give it a shot anyway.
emumaniac
Posts: 79
Joined: Sun May 08, 2005 12:22 am

Post by emumaniac »

awesome news, what time scale do you see to a new release :)
medafor
Posts: 9
Joined: Wed Jun 29, 2005 1:19 am

Post by medafor »

try contacting the author of the latest neogeo emu. just look in the read me file and his website will be in there. not because neogeo is running ultra fast now, but because he also has made multiple ports of the snes emulator for other handhelds(palm and stuff). i wonder why he didnt do snes for psp seeing that he had a background in it? he did a damn good job on porting neogeo properly(it previously ran worst than snes,now it 60fps with sound). i cant wait to see snes running better, i have held off on playing super metroid, zelda, chronotrigger and final fantasy. i only test them out for a few, but never seriously play them because of the lack of speed. i want to wait a play them in there full glory!
Smiths
Posts: 30
Joined: Sun May 15, 2005 10:01 am

Post by Smiths »

yoyo's working on another "project" currently. I don't know exactly what it is, mind you, but you can begin speculating for fun :)

Andon, great heads up there. I appreciate all "y" contributed with his build after build, but I -- like you -- kept getting this nagging doubt that he really understood how the snes functioned and was simply just "adding things for the sake of adding things".

He's talented and a great asset to the homebrew dev community, but after a while I just got mad lost in his "daily builds"

So keep up the work man, looking forward to mroe progress reports!
crazyc
Posts: 408
Joined: Fri Jun 17, 2005 10:13 am

Post by crazyc »

So it may prove futile, but I'll give it a shot anyway.
On the futility note, I'm trying to get the SPC700 running on the ME. All the polling and messages being passed may hamper instead of help performance.
Andon
Posts: 15
Joined: Sun Jul 10, 2005 10:01 pm
Location: Florida

Post by Andon »

emumaniac wrote:awesome news, what time scale do you see to a new release :)
I like to target Fridays for releases whenever possible. Tomorrow's my Mom's birthday though, so I may release it on Saturday.

Since this post earlier today I did a lot of work on the debugger in uo_Snes9x 0.02pd2 and added a new debugger menu option. You can try out crash simulation (segv only, div by zero is a CPU exception that's disabled at compile time) to see what's changed :)

I also implemented double buffering for SceGU and a couple of other things. See the CHANGELOG.txt file for the unimportant stuff.

A pre-compiled snapshot is up on my website now (the Snes9x icon is back, for you 1.0 Firmware users :P):
http://psp.nothing-inc.com/uo_Snes9x-0. ... 28.tar.bz2
medafor
Posts: 9
Joined: Wed Jun 29, 2005 1:19 am

Post by medafor »

so is this snapshot goping to be the released build? did you achieve what you were trying to do? how much faster is this than y28?
mrbrown
Site Admin
Posts: 1537
Joined: Sat Jan 17, 2004 11:24 am

Post by mrbrown »

medafor wrote:so is this snapshot goping to be the released build? did you achieve what you were trying to do? how much faster is this than y28?
If you aren't asking technical questions then you're going to have to either PM the author or take it off-site.

We are not going to turn into an emu fan board.
glooby
Posts: 1
Joined: Fri Jul 29, 2005 2:38 pm

Post by glooby »

Hi,Andon, Thanks for your pd2 version,We wait for it a longtime. I got a problem here, After I choose a game ,and press L+R+Select back to menu ,then back to game,The game Graphic will not display correctly. (This will happen only when useing "SceGU"and "Bilinear Filter").
Would you plz fix it? Thank you very much!!
Last edited by glooby on Fri Jul 29, 2005 3:26 pm, edited 1 time in total.
Andon
Posts: 15
Joined: Sun Jul 10, 2005 10:01 pm
Location: Florida

Post by Andon »

medafor wrote:so is this snapshot goping to be the released build? did you achieve what you were trying to do? how much faster is this than y28?
The snapshot is mostly what's going to be in the released build. I'll finish translating everything tomorrow (I still need to translate the SRAM overwrite and State Delete confirmation dialogs), rebuild the whole thing using an updated toolchain and add a confirmation dialog for overwriting files in the file manager.

It's actually about the same speed as y28. The optimizations I was speaking of are scheduled to be part of pd3. I wanted to finish all of the features and bug fixes that were accumulating in pd2 and release it before I started to work on any major optimizations.

There's one more thing I wanted to do with the file manager in pd2, but didn't have enough time. That is, enable USB file transfers. So you could transfer ROMs, state saves, etc. without having to exit uo_Snes9x (this would be particularly useful for people with smaller Memory Sticks). It's not as difficult as it sounds, but it'll have to wait for pd3.
User avatar
Cubeikon
Posts: 13
Joined: Mon Aug 01, 2005 6:39 am

Post by Cubeikon »

keep up the good work Andon :D

One question; Do you have any idea of the release date for "pd3" ? I'm really looking forward to this day ^^

Greetings from Europe
Cubeikon
...bla ?
laxer3a
Posts: 23
Joined: Wed May 11, 2005 1:09 am

Snes Emu Release.

Post by laxer3a »

Hi,

Yoyo, thunder and I have released finally our porting of V1.39 of Snes9X.
Main point is hardware accelerated rendering.

http://yoyofr.fr.st/

See you.
User avatar
Cubeikon
Posts: 13
Joined: Mon Aug 01, 2005 6:39 am

Post by Cubeikon »

Cubeikon wrote:keep up the good work Andon :D

One question; Do you have any idea of the release date for "pd3" ? I'm really looking forward to this day ^^

Greetings from Europe
Cubeikon
...Andon ?
...bla ?
ooPo
Site Admin
Posts: 2023
Joined: Sat Jan 17, 2004 9:56 am
Location: Canada
Contact:

Post by ooPo »

Please don't bump threads.
Post Reply