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

sparkymark79

Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #30 on: January 03, 2014, 01:44:02 pm »
Does anybody know of an easy way to get all the preview files to match my ROM names, perhaps by renaming to the closest match. A windows app maybe? Thanks

thought about this more. So I need a regular expression to match all characters (or a high percentage) from a folder of .png files to a folder full of .zip files. When a match is found, then the .zip should be renamed to the .png name

Easy! haha if I knew anything about writing scripts, etc! Something like this could be used http://regexrenamer.sourceforge.net/

Anybody?? :)
« Last Edit: January 03, 2014, 02:25:13 pm by sparkymark79 »

hi-ban

  • **
  • Posts: 825
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #31 on: January 03, 2014, 02:42:53 pm »
There are 2 "main" sets of roms out there.

- The "GoodSNES" romsets, with the names being in the format "Romname (E) [!]". It includes all versions of roms, including hacks, bad dumps, bootleg versions, etc... This makes a total of more than 11000 SNES roms, but most of them are clones and hacks (in other words, mostly rubbish).

- The "No-Intro" romsets, with names being in the format "Romname (Europe)". Most (if not all) preview packs out there, used by emulators with the Hyperspin frontend use the naming from this romsets, as those sets don't include rom hacks or bootlegs, only good dumps. Hence, this naming convention is also called "Hyperspin". This makes a total of about 3500 SNES roms, being most of them "official" roms.

There seems to be tools for renaming roms from GoodSNES sets into the No-Intro naming system, the people from the No-Intro project seems to have the renaming tools available here: http://no-intro.org/

However i don't know if there is any way of doing the opposite. So my recommendation is to convert your GoodSNES romset into a No-Intro romset, or download a No-Intro romset from the internet.
« Last Edit: January 03, 2014, 02:45:42 pm by hi-ban »

sparkymark79

Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #32 on: January 03, 2014, 03:07:18 pm »
Taking your last piece of advice :)

hi-ban

  • **
  • Posts: 825
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #33 on: January 03, 2014, 03:55:51 pm »
here is an updated PNG preview pack.

I fixed some typos in some files, and added a couple of previews.

Download here: https://mega.co.nz/#!hocEWDJS!DimgnD_5ulKpQy2hNWeqZ0hjpDh09iRJ6yIRnwHVHTw

Scoobysnaxx

  • *
  • Posts: 128
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #34 on: January 03, 2014, 04:53:18 pm »
Thank you Nebuleon, hi-ban and JohnnyonFlame! Your work is very much appreciated.  ;D

johnnyonflame

  • *
  • Posts: 212
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #35 on: January 03, 2014, 05:27:56 pm »
Thank you Nebuleon, hi-ban and JohnnyonFlame! Your work is very much appreciated.  ;D

Nebuleon and the Snes9x 1.43 core developers are the ones to be thankful for, I only coded this piece of UI:


Hi-ban actually did the design, while Nebuleon adapted the UI to follow suit. I only chimed in with a single gradient algorithm.

patrick81

Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #36 on: January 03, 2014, 06:13:26 pm »
I updated this but it cannot read my load states anymore.   :o  Am i missing something?  Did it move to somewhere? 
« Last Edit: January 03, 2014, 06:15:47 pm by patrick81 »

Awakened

  • *
  • Posts: 96
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #37 on: January 03, 2014, 08:29:42 pm »
Really awesome update, I'll be much more likely to play SNES stuff on the Zero thanks to this  :)

Being nitpicky here, but would it be possible to bring over the bilinear scaler from ReGBA? It should look more "even" compared to the one from SNES9x4D (lifebars from Mega Man games seem to be an easy way to compare):





I can understand if there's not enough CPU power left over for that type of scaling in this case (until the IPU driver is done anyways).

Surkow

  • * Administrator
  • S
  • Posts: 539
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #38 on: January 03, 2014, 09:02:43 pm »
Scaling will be free the moment the IPU is supported. So it's probably not a very pressing issue.

Nebuleon

  • Guest
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #39 on: January 03, 2014, 10:42:17 pm »
I updated this but it cannot read my load states anymore.   :o  Am i missing something?  Did it move to somewhere?
As the saved state format is very much tied to the core, later versions of Snes9x -- the core PocketSNES uses --, lose saved state backwards compatibility with every new version.

In the meanwhile, please hold on to your PocketSNES-1.39 build from August, load one saved state from 1.39 and let it save SRAM. 1.43 will then be able to load SRAM along with your game and you can save a new state with it.

iames85

  • *
  • Posts: 65
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #40 on: January 03, 2014, 10:51:04 pm »
This is fantastic guys. Thanks you so much for all your hard work. Its so great to have these games playable again after so many years.

Nebuleon

  • Guest
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #41 on: January 03, 2014, 11:14:15 pm »
Really awesome update, I'll be much more likely to play SNES stuff on the Zero thanks to this  :)

Being nitpicky here, but would it be possible to bring over the bilinear scaler from ReGBA? It should look more "even" compared to the one from SNES9x4D (lifebars from Mega Man games seem to be an easy way to compare):





I can understand if there's not enough CPU power left over for that type of scaling in this case (until the IPU driver is done anyways).
ReGBA can scale evenly, but PocketSNES cannot.

GBA: 320x213.33333 <-- 240x160, so the bilinear interpolants are 0.75x, 0.75y (*3/4 in integer math)
SNES: 320x240 <-- 256x224, so the bilinear interpolants are 0.8x, 0.9333333y (*4/5 and *14/15 in integer math)

Because integer divisions by powers of 2 are much faster than integer divisions by arbitrary integers -- 1 cycle instead of up to 31, according to the MIPS XBurst manual --, one cannot scale in real-time using the software bilinear scaler from ReGBA if the linear interpolants cannot be represented as fractions with a power-of-2 denominator.

Currently the scaling is done by a Bresenham half-pixel algorithm vertically and quarter-pixel horizontally. It can run in 63 cycles per group of 8 output pixels, or 604800 cycles per frame (3.62% CPU time).

A software bilinear scaler would have to spend time doing a division by 15 and a division by 5 per color component per input pixel, and it would have to look at the 4 neighbors of all output pixels amongst the input image, so it would run in 744 cycles per single output pixel, or 57139200 cycles per frame (342% CPU time). As happened in ReGBA before I noticed the interpolants were optimisable, the frameskipper decision algorithm would decide that it can only render 1 frame every 3 or 4, so every game starts at 20 or 15 FPS.

tl;dr: I'll wait for the IPU.

Awakened

  • *
  • Posts: 96
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #42 on: January 04, 2014, 12:00:46 am »
ReGBA can scale evenly, but PocketSNES cannot.

GBA: 320x213.33333 <-- 240x160, so the bilinear interpolants are 0.75x, 0.75y (*3/4 in integer math)
SNES: 320x240 <-- 256x224, so the bilinear interpolants are 0.8x, 0.9333333y (*4/5 and *14/15 in integer math)

Because integer divisions by powers of 2 are much faster than integer divisions by arbitrary integers -- 1 cycle instead of up to 31, according to the MIPS XBurst manual --, one cannot scale in real-time using the software bilinear scaler from ReGBA if the linear interpolants cannot be represented as fractions with a power-of-2 denominator.

Currently the scaling is done by a Bresenham half-pixel algorithm vertically and quarter-pixel horizontally. It can run in 63 cycles per group of 8 output pixels, or 604800 cycles per frame (3.62% CPU time).

A software bilinear scaler would have to spend time doing a division by 15 and a division by 5 per color component per input pixel, and it would have to look at the 4 neighbors of all output pixels amongst the input image, so it would run in 744 cycles per single output pixel, or 57139200 cycles per frame (342% CPU time). As happened in ReGBA before I noticed the interpolants were optimisable, the frameskipper decision algorithm would decide that it can only render 1 frame every 3 or 4, so every game starts at 20 or 15 FPS.

tl;dr: I'll wait for the IPU.
Gotcha. I'm glad to have the current scaler until that is available.

gustavolatil

  • *
  • Posts: 131
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #43 on: January 04, 2014, 03:46:10 am »
act raiser intro sounds weird :/

Nebuleon

  • Guest
Re: PocketSNES based on Snes9x 1.43-dev [2014-01-03 update]
« Reply #44 on: January 04, 2014, 06:10:22 am »
act raiser intro sounds weird :/
Yes, it does. Feel free to find the code that fixes this in Snes9x 1.5x and backport it without the performance spiralling out of control. :)

 

Post a new topic
Post a new topic