• HomeBoards
  • RulesRules
  • HelpHelp
  • WikiWiki
  • Donate

Author Topic: PocketSNES based on Snes9x 1.43-dev [2014-08-24 update]  (Read 128980 times)

Nebuleon

  • Guest
PocketSNES based on Snes9x 1.43-dev [2014-08-24 update]
« on: January 01, 2014, 12:27:28 am »
Per the title. PocketSNES was previously released by pcercuei after a longer port lineage and used the Snes9x 1.39 core, resulting in not-so-great special chip support.

This new version has a revamped GUI and a forward-ported Snes9x 1.43-dev core with S-DD1 support written by Brad Jorsch, Andreas Naive and John Weidman and first ported by SiENcE to snes9x4d.

What this means for you

- The menu looks like this: (thanks to hi-ban for everything!)


- SRAM (save data) saves every time you properly exit PocketSNES or change ROMs, no questions asked. A setting now exists to let you save SRAM 1 second after it is modified on top of all that. The default for this new option, "Save SRAM when changed", is ON.

- You can now play the following games: (and possibly more I did not test)
* Mega Man X2 and X3 (Cx4 chip) boot and play at 60 FPS
* Seiken Densetsu 3 boots
* Star Fox 2 boots (according to Orion4874 in #28)
* Star Ocean and Street Fighter Alpha 2 don't look like someone threw white noise onto the screen for every frame

- The following games are now improved:
* Secret of Mana, menu text is now readable
* Rudora no Hihou, menu text is now readable
* Dark Law: Meaning of Death, now looks better (according to MightyJAK in #18)
* F1 ROC II: Race of Champions (SETA010 chip) plays without garbled graphics at 60 FPS
* Star Fox, safe for playing by those with photosensitive epilepsy
* Ys V has reduced graphical artifacts (according to Gunsmithx on NeoGAF)
* Super Mario World 2: Yoshi's Island (SuperFX chip), faster with triple-buffering (use at least the 2014-05-05 firmware)
* Super Mario RPG: Legend of the Seven Stars (SA-1 chip), faster with triple-buffering (use at least the 2014-05-05 firmware)
* Kirby Super Star (SA-1 chip), faster with triple-buffering (use at least the 2014-05-05 firmware)
* Kirby's Dreamland 3 (SA-1 chip), faster with triple-buffering (use at least the 2014-05-05 firmware) and does not need to be selected twice to run
* New: Sound effects in all games are now properly synchronised (unless Prefer fluid... is set to Video). Super Probotector and Castlevania are OK (according to hi-ban in Emulation/What are the odds... #14). According to me, Super Mario World and A Link to the Past are OK, too.

- There is now an option to control the audio emulation accuracy, which mostly affects short notes in music and sound effects. Delete the file ~/.snes96_snapshots/pocketsnes_options.opt generated by PocketSNES-1.39 from your Zero and you will get the new default the next time you launch PocketSNES: notes longer than 2.9 milliseconds are not nullified anymore. Previously, this was 16 milliseconds. You also have the option to emulate the SNES audio chip at 0.07-millisecond accuracy if you so wish: set the option Prefer fluid... to Audio. This is CPU-intensive and may slow down video in special-chip games.

- There is now a manual, in which you can read about the menu hotkey and all non-trivial options. Choose PocketSNES in gmenu2x, then press Select and use the Show manual option.

Download: http://www.gcw-zero.com/file.php?file=PocketSNES-20140824-1.opk
with a complementary pack of SNES game title screens to put into [your SNES game directory]/previews, prepared by hi-ban: https://mega.co.nz/#!c0FiBATZ!Ivngwi7DY2RgQmpPGyvnDwdaDbkYsxOHCNYI3HIq7-c
Source: https://github.com/Nebuleon/PocketSNES
« Last Edit: October 02, 2014, 06:58:16 am by Nebuleon »

sparkymark79

  • Posts: 56
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #1 on: January 01, 2014, 01:19:21 am »
Many thanks and happy new year :)

Gab1975

  • Posts: 1165
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #2 on: January 01, 2014, 01:46:53 am »
Thanks a lot and happy new year! :)

kuwanger

  • Posts: 29
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #3 on: January 01, 2014, 02:18:17 am »
I too would like to chime in with a thank you very much and a happy new year.  Just a small note but MMX3 has a noticeable frame drop (30fps) in the underwater Acid Seahorse area, which isn't too surprising given it's a trouble area of emulation.  Also, Star Fox is still the same sort of weird glitchy ghosting that plagued the older PocketSNES. :/  I have no idea why that is.  I assume you knew or guessed these issues, so they're really more of a heads up for other people.

Even with these points, it's really great to see a newer version of PocketSNES which is a big improvement in a lot of areas.

Awakened

  • Posts: 96
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #4 on: January 01, 2014, 02:30:38 am »
Nice release, sound and compatibility are much better. About the only reason to keep SNES9x4D around now is for the fullscreen scaler, which is an option I could see coming to this later.

Thanks and happy new year!

Nebuleon

  • Guest
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #5 on: January 01, 2014, 02:31:40 am »
I did test Star Fox, and found that the port must ask the Snes9x core to render all frames, otherwise the core doesn't adjust the chip state at all and may reissue frames from the past. (It's not caused by bad SDL double-buffer flipping.)

A workaround is to set frameskip to 0. Then the game renders all frames perfectly, at the cost of performance, and the music is stretched to fit the new timing.

Mega Man X2 and X3 did not run on the previous build, so the performance cannot be compared to the previous build, of course.

TimeDevouncer

  • Posts: 231
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #6 on: January 01, 2014, 10:34:38 am »
OH MY GOD!!! Awesome! Thank you so much!

I test now.

Happy new year to everybody! ;D

EDIT

Wow! Now Stunt Race FX works! Slow but works :P, Dragon Ball Z Hyper Dimension are full playable with frameskip auto, Yoshi's Island continue with slowdowns, the same for Mario RPG (when open ITEM and SPECIAL tabs in battles with frameskip 0). Secret of mana runs perfect, without text problems and Seiken Densetsu 3 works and looks like it's going very well.

EDIT 2

I found a bug. I was playing MegamanX (the octopus stage continue with the slowdowns with frameskip 0 :(), and i save state in slot 0...ok, but when i save in slot 1...pocketsnes copy the slot 0 to slot 1. I also saw that my save states from the previous version don't work.

Sorry for my bad english :P :-[
« Last Edit: January 01, 2014, 11:43:16 am by TimeDevouncer »
Look behind you! A three-headed monkey!

iames85

  • Posts: 65
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #7 on: January 01, 2014, 12:50:01 pm »
Thanks for this. The new skin looks so much better, and I can also make note that Another World has gone from not working at all to working flawlessly! Thanks for the work put in guys.  :)

kuwanger

  • Posts: 29
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #8 on: January 01, 2014, 02:54:37 pm »
Quote
Mega Man X2 and X3 did not run on the previous build, so the performance cannot be compared to the previous build, of course.

Sorry, I wasn't meaning to compare against earlier builds.  It's just that I saw a OpenPandora video demonstrating the slowdown there and wanted to see if the same thing was happening here as well.  I get the impression from Nick Nillo's video, though, that he may have had Frameskip Auto/1 and it's certainly playable like that.  It just seems like a little odd.

And that brings me to my next point.  I decided to ssh in and see just how much CPU usage PocketSNES was using.  Apparently through most stages CPU usage was around 45%-50%.  With the "Prefer fluid... to Audio", the CPU usage went up ~5%.  During the more "heavy" parts of Acid Seahorse (the part with the knee-deep water), CPU usage was ~70%.  The real oddity is that during the underwater area, CPU usage actually went down to ~45%.  So, at least there the bottleneck doesn't appear to be the CPU.

In any case, it's certainly quite playable   And I really do, again, want to reiterate how much I appreciate all your effort.

TimeDevouncer

  • Posts: 231
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #9 on: January 01, 2014, 03:09:53 pm »
I love the new skin :-*
Look behind you! A three-headed monkey!

MAF84

  • Posts: 21
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #10 on: January 01, 2014, 06:56:38 pm »
Thanks!  I just installed this.

First impression/question- at least for the one game I was playing, this doesn't appear to work with save states from the old version.  It sees those save states, but when I try to load one, it takes me to wherever I was before I tried to load a save state.  I'm not sure if this happens in other games.  The good thing is that it seems to be possible to have both versions of PocketSNES loaded onto the Zero simultaneously, so that a transition can be made over time.  (I assume the SRAM files will still work because those seem to be compatible across all emulators.)

Star Fox actually works; it didn't on the last version.  But it didn't seem truly playable- there were strange speedups and slowdowns.  It's possible that if I played around with the settings I could fix this, so this is a very preliminary impression.

Thanks again!

glimmer

  • Posts: 119
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #11 on: January 01, 2014, 07:22:25 pm »
This new version has a revamped GUI and a forward-ported Snes9x 1.43-dev core.
It's working perfectly for the few games I've tried so far. One question: cheats? :)

Thanks in advance.

Nebuleon

  • Guest
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #12 on: January 01, 2014, 07:56:03 pm »
[...]

First impression/question- at least for the one game I was playing, this doesn't appear to work with save states from the old version.  It sees those save states, but when I try to load one, it takes me to wherever I was before I tried to load a save state.  I'm not sure if this happens in other games.  The good thing is that it seems to be possible to have both versions of PocketSNES loaded onto the Zero simultaneously, so that a transition can be made over time.  (I assume the SRAM files will still work because those seem to be compatible across all emulators.)
SRAM files will still work, yes, and the saved states not loading from a previous version is just because, at a certain point, Snes9x developers stopped caring about backwards compatibility for their saved states after every new version. I just didn't expect it to be gone already for 1.39 in 1.43.

Do states at least load and save properly inside PocketSNES-1.43?

TimeDevouncer

  • Posts: 231
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #13 on: January 01, 2014, 08:09:22 pm »
Quote
Do states at least load and save properly inside PocketSNES-1.43?

Nope :-[, i have this problem:

and i save state in slot 0...ok, but when i save in slot 1...pocketsnes copy the slot 0 to slot 1.
Look behind you! A three-headed monkey!

Nebuleon

  • Guest
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #14 on: January 01, 2014, 08:42:18 pm »
Quote
Do states at least load and save properly inside PocketSNES-1.43?

Nope :-[, i have this problem:

and i save state in slot 0...ok, but when i save in slot 1...pocketsnes copy the slot 0 to slot 1.
hi-ban also pointed me to this problem, but I changed nothing in the menu's saved state behaviour at all in this build. Can you test whether this exact problem also exists in pcercuei's build from August (which I call PocketSNES-1.39 here because that's what its Snes9x core was)?

To ensure a fair test, please delete NAME.sv0 and NAME.sv1 from your game in ~/.snes96_snapshots, because Snes9x 1.39 cannot read 1.43 saved states.

TimeDevouncer

  • Posts: 231
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #15 on: January 01, 2014, 08:57:53 pm »
Quote
Do states at least load and save properly inside PocketSNES-1.43?

Nope :-[, i have this problem:

and i save state in slot 0...ok, but when i save in slot 1...pocketsnes copy the slot 0 to slot 1.
hi-ban also pointed me to this problem, but I changed nothing in the menu's saved state behaviour at all in this build. Can you test whether this exact problem also exists in pcercuei's build from August (which I call PocketSNES-1.39 here because that's what its Snes9x core was)?

To ensure a fair test, please delete NAME.sv0 and NAME.sv1 from your game in ~/.snes96_snapshots, because Snes9x 1.39 cannot read 1.43 saved states.

No, the pcercuei's build don't have this problem, works fine.

And...i don't have any NAME.sv0 or NAME.sv1 in snes96_snapshots ???

Look, this is the problem (in images xD)

I select a game:

In logo screen, save in slot 0:




Ok, works...but in the New game menu I try to save in slot 1 and...





Zasca, the logo screen of slot 0, and if i load state 1, the game crashes.
« Last Edit: January 01, 2014, 09:04:43 pm by TimeDevouncer »
Look behind you! A three-headed monkey!

Nebuleon

  • Guest
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #16 on: January 01, 2014, 09:04:48 pm »
And...i don't have any NAME.sv0 or NAME.sv1 in snes96_snapshots ???
NAME is the Name of your Game. I don't know which you tested with. I couldn't have filled it in telepathically.

TimeDevouncer

  • Posts: 231
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #17 on: January 01, 2014, 09:07:25 pm »
Ok sorry xD, my english is very bad and It's too difficult for me to express and understand it all well.

But well, as you can see in the pictures above, the error happens with games I have not played :(
Look behind you! A three-headed monkey!

MightyJAK

  • Posts: 538
    • My tumblr
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #18 on: January 01, 2014, 11:12:48 pm »
Wow, the text in Dark Law: Meaning of Death is much more legible now (about on par with how it looks on the Letcool). Still have to guess at some words, but this is still a big improvement, thanks!
My machines:
GBC,GBA,GBA SP,NDS,NGPC,Panasonic FZ-10 3DO,NES,Sega Nomad,Sega CDX w/Power Base Converter,PS1,PS2,PS3,Saturn,Dreamcast,PC (Win 98, XP, 7),Dingoo A320,Dingoo A330,Gemei A330,LetCool N350JP,PAP-GAMETA,GCW-Zero SE,Kyocera Rise,2DS,GP2X-F100,GPD G7,JXD 100,JXD A1000,JXD A3300,JXD F3000,JXD V5000,JXD S7300B,Hyperkin SupaBoy

Currently playing: Theatrhythm Final Fantasy Curtain Call (2DS)

Nebuleon

  • Guest
Re: PocketSNES based on Snes9x 1.43-dev
« Reply #19 on: January 02, 2014, 01:58:51 am »
I've fixed the saved state trouble, but am not about to reimplement the L+R+Left and L+R+Right in-memory saved states, because the Snes9x core doesn't accept redirecting saved states to memory anymore.

For the saved state menu, I chose to save a state at /tmp/.svt so the emulator can back out if you don't choose a saved state to load. Creating a preview for the UI requires loading the state, emulating one frame and backing out to the state before entering the menu -- unfortunately I couldn't redirect that to memory anymore, so the state was not saved, so I couldn't back out and the previewed state stayed loaded. That's why you appeared to save copies of the same state over and over.

Some more fixups are required. I'll then make another release and update the OP.