Release Picodrive 1.80


notaz

Certified Guru
Joined
Aug 23, 2005
Messages
4,913
Location
Lithuania
Website
notaz.gp2x.de
PicoDrive is Megadrive / Genesis / Sega CD / Mega CD / 32X / SMS emulator.

http://notaz.gp2x.de/releases/PicoDrive/PicoDrive_180.pnd

From the last version, 32X and SMS support was added. This is still incomplete (32X needs work and I lack motivation for SMS), it has been in development for more than a year now and it started taking forever because of other projects, so I figured I should release something as it reached somewhat usable state.

Many 32X games need overclocking and some glitch badly due to bugs. There is still a lot room for improvement though. There should be no need to tweak SH2 underclocking or disabling PWM like on GP2X/Wiz/Caanoo, just give it enough overclock and games should be playable if they are compatible.

Here is complete changelog from last released version:
  • Enabled 32X and SMS code. It's still unfinished but better release something
    now than wait even more (it has been in development for more then a year now
    due to various other projects or simply lack of time).
  • Pandora: added hardware scaler support, including ability to resize the
    layer and control filtering.
  • Changed the way keys are bound, no need to unbind old one any more.
  • Handle MP3s with ID3 tags better (some MP3s with ID3 did not play).
  • Improved shadow/hilight color levels.
  • Fixed broken cheat support.
 
Thanks Notaz for the update.

One suggestion is to add to the scaling options a mode for horizontal scale from 256 to 320 wide to match aspect for those games. Also when doing the horizontal scale have the ability to automatically apply only the filter to the 256->320 mode but leave the 2 x 2 mode unfiltered. This is kind of like it was on the GP2X, the horizontal scale had smoothing, the 1:1 didn't. Also would it be possible to add that mode like you wrote on the GP2X where it did that horizontal one direction smoothing rather than a global filter (maybe the FIR variables could be tweaked to simulate that?) that looked pretty good on GP2X and would look even better with the Pandora's finer resolution.

So in the filter menu would be: none, default, filter 32->40 Col Mode. Or alternatively: none, default, Auto. (auto turns on filter for fractional modes)

Scale menu would add 2x2, 32->40 col. as well as the 2x2, 2x2 etc.

Thanks for the great work, now I need to drum up some 32X stuff to try.
 
Awesome notaz!

Thank you for all the work you have put in.

Question - I have quite a few save states, how can use the new version whilst keeping all my save states?

EDIT: Nevermind, I looked in the mds folder :p

EDIT 2: OMG! Notaz! This is the shit!!! I think I'm loving the fullscreen mode best!! Is there anyway to set fullscreen as default? Its a little annoying having to set that back up after loading a new rom.

Tried quite a few 32x games, knuckles:chaotix, toughman contest, space harrier, virtual racing, doom - they all work really well, the 3d games do need a bit of an overclock but they are fine by 700mhz. The only game I couldnt get to work was afterburner complete, but that was the US version. Will try EU/J.

Awesome job!!
 
jonlad1 said:
Awesome notaz!

Thank you for all the work you have put in.
EDIT 2: OMG! Notaz! This is the shit!!! I think I'm loving the fullscreen mode best!! Is there anyway to set fullscreen as default? Its a little annoying having to set that back up after loading a new rom.
Awesome job!!

"Save global config" in the menu makes your settings default.
 
Last edited by a moderator:
Wow, AWESOME release!
SMS worked without any problems so far, 32x is pretty neat (Knuckles Chaotics fullspeed - geeez!) and scaling / filter settings rock.

Just one wish for custom scaling:
You cannot scale the picture outside of the LCD area. Some games however only use a smaller area of the visible screen, it would be cool if you could scale them to fit the screen perfectly.
However, as you cannot scale the screen outside of the visible area, you can't do this (I hope you understood what I tried to explain ;))
 
EvilDragon said:
Wow, AWESOME release!
SMS worked without any problems so far, 32x is pretty neat (Knuckles Chaotics fullspeed - geeez!) and scaling / filter settings rock.

Just one wish for custom scaling:
You cannot scale the picture outside of the LCD area. Some games however only use a smaller area of the visible screen, it would be cool if you could scale them to fit the screen perfectly.
However, as you cannot scale the screen outside of the visible area, you can't do this (I hope you understood what I tried to explain ;) )
You mean for stuff like Starblade, Silpheed and some of the FMV stuff that used a smaller window and big border on a real MD, you can't fill the screen with those is what I get from what you said. I guess a sort of "zoom" mode would fix it although it could look blocky

@ Notaz I noticed in Castlevania some of the colors fall to black a bit too fast. Did something change with the gamma? I didn'nt notice a setting in the emu, maybe there should be one?

Thanks for the filter toggle. Works nice, hopefully there will be an update of Ginge sometime to add this feature.

Thanks for everything.
 
Last edited by a moderator:
Hey Notaz,

Will the 32x cd games work? ie Corpse Killer/Slam City

EDIT: Just tried Night Trap 32x version and it loads up the megacd bios and then the licensed by sega screen but then hangs (just like the way jap megacd games do...)
 
Ahhh what a time to be without a Pandora!!! :(

Still, yet another thing to look forward to when my second batcher arrives :)
 
Thanks Notaz, excellent release :) Where can I donate?

I didnt realise it didnt have GameGear support, though, started booting them up to find out it was like being on an acid trip :lol: Will still have to keep using my SMS/GG emu for now. Any chance of GG support coming later on, as your SMS component seems to be very well done?
 
DaveC said:
So in the filter menu would be: none, default, filter 32->40 Col Mode. Or alternatively: none, default, Auto. (auto turns on filter for fractional modes)
I don't think I want to implement that. We can add "horizontal only" filter to firmware (if ED's ok) and I can add "keep 4:3" option.

EvilDragon said:
You cannot scale the picture outside of the LCD area. Some games however only use a smaller area of the visible screen, it would be cool if you could scale them to fit the screen perfectly.
However, as you cannot scale the screen outside of the visible area, you can't do this (I hope you understood what I tried to explain ;) )
This is a limitation of OMAP DSS driver (and maybe even hardware itself). I can work around that in software but it's messy.

DaveC said:
@ Notaz I noticed in Castlevania some of the colors fall to black a bit too fast. Did something change with the gamma? I didn'nt notice a setting in the emu, maybe there should be one?
Yes I did, otherwise gray bar level test fails. No I don't want to make an option (unless you can give me 4bit gamma tables maybe).

jonlad1 said:
Will the 32x cd games work? ie Corpse Killer/Slam City
It's not yet supported.

Writing Gaijin said:
Any chance of GG support coming later on, as your SMS component seems to be very well done?
There seems to be some demand for it so I guess I'll add it soon.
 
Last edited by a moderator:
notaz said:
Writing Gaijin said:
Any chance of GG support coming later on, as your SMS component seems to be very well done?
There seems to be some demand for it so I guess I'll add it soon.

Awesome, thanks man. Just sent some cash your way as well as cheers for the great work.
 
Last edited by a moderator:
notaz said:
DaveC said:
So in the filter menu would be: none, default, filter 32->40 Col Mode. Or alternatively: none, default, Auto. (auto turns on filter for fractional modes)
I don't think I want to implement that. We can add "horizontal only" filter to firmware (if ED's ok) and I can add "keep 4:3" option.

Sure, I'm currently adding default filter selection in the LCD-Settings dialogue, any filters are welcome :)

EvilDragon said:
You cannot scale the picture outside of the LCD area. Some games however only use a smaller area of the visible screen, it would be cool if you could scale them to fit the screen perfectly.
However, as you cannot scale the screen outside of the visible area, you can't do this (I hope you understood what I tried to explain ;) )
This is a limitation of OMAP DSS driver (and maybe even hardware itself). I can work around that in software but it's messy.

Hm... basically, you'd need to crop and then scale... cropping a fb is a hard thing to do?
Okay. Well, no biggie, most games fill the LCD properly, was just one or two ones where I noticed that.
 
Last edited:
EvilDragon said:
notaz said:
DaveC said:
So in the filter menu would be: none, default, filter 32->40 Col Mode. Or alternatively: none, default, Auto. (auto turns on filter for fractional modes)
I don't think I want to implement that. We can add "horizontal only" filter to firmware (if ED's ok) and I can add "keep 4:3" option.
Sure, I'm currently adding default filter selection in the LCD-Settings dialogue, any filters are welcome :)
It's simple - look in /etc/pandora/conf/dss_fir/, there are *_up_h and *_up_v* files.
cp default_up_h horizontal_up_h; cp none_up_v3 horizontal_up_v3; cp none_up_v5 horizontal_up_v5;
(takes default filter for horizontal and none for vertical)
after this you can run '/usr/pandora/op_videofir.sh horizontal' to enable the filter, and PicoDrive will add it to it's filter list automatically.

EvilDragon said:
Okay. Well, no biggie, most games fill the LCD properly, was just one or two ones where I noticed that.
Yeah and that's why I'm not that motivated to implement it (also it's not something I would use, I usually use 2x mode).
 
Last edited by a moderator:
notaz said:
DaveC said:
So in the filter menu would be: none, default, filter 32->40 Col Mode. Or alternatively: none, default, Auto. (auto turns on filter for fractional modes)
I don't think I want to implement that. We can add "horizontal only" filter to firmware (if ED's ok) and I can add "keep 4:3" option.

DaveC said:
@ Notaz I noticed in Castlevania some of the colors fall to black a bit too fast. Did something change with the gamma? I didn'nt notice a setting in the emu, maybe there should be one?
Yes I did, otherwise gray bar level test fails. No I don't want to make an option (unless you can give me 4bit gamma tables maybe).
soon.
But if there is no option to filter only the mode that needs to be (4:3 fractional 32 column) then it will also blurr out the regular 2X mode which is not needed. Some games change modes on the fly (levels with "mode 7" type typically go to lower resolution but go back to 40 column when 2D). I guess it isn't a big deal to just keep it at 2X and live with a smaller screen in 256 wide modes as there aren't many games that use it but it just would have been a nice refinement.

The new gamma makes many games with darker colors (Thunder force 3 background example etc) look pretty bad. If you look at the blue water level in TF3 the lighter blue colors in the forground are screaming while the darker background is almost gone. This makes some things look rather harsh, and the un-natural separation of shades actually make it look like you are losing colors and causes more obvious banding. It is a great emulator and colors should at least look right I think. I am not sure what "gray bar level test fails" means. How would I give you the 4 bit gamma tables? Let me know what to do there.
 
Last edited by a moderator:
DaveC said:
The new gamma makes many games with darker colors (Thunder force 3 background example etc) look pretty bad. If you look at the blue water level in TF3 the lighter blue colors in the forground are screaming while the darker background is almost gone. This makes some things look rather harsh, and the un-natural separation of shades actually make it look like you are losing colors and causes more obvious banding. It is a great emulator and colors should at least look right I think. I am not sure what "gray bar level test fails" means. How would I give you the 4 bit gamma tables? Let me know what to do there.
Since you make it sound like it's the end of the world I want you to give me color mappings you think are correct. Genesis/MD has 3 bits per pixel, meaning each color component can have values from 0 (black) to 7 (max brightness). There is a mode called shadow/hilight mode which (sort of) adds another bit, giving 0..15 (well it's really 14 on the real hardware but that's details). Picodrive runs in RGB565 mode on all ports I maintain, meaning intensity range is 0..31 for red and blue and 0..63 for green.

The thing is levels are not linear - steps are not even. That has been measured on the real hardware:
http://img269.imageshack.us/i/upperw.png/
(ignore left side of the image, it's another test).
As you can probably see, intensity increase from black to 1 is much larger than from 1 to 2, similar situation on the other end. This is emulated wrong on both current and previous version.

So what I want is that you fill this table:
Code:
Genesis/MD  Emulator
Hardware    Red/Blue   Green
0           0          0
1           ?          ?
...
7           31?        63?
 
Last edited by a moderator:
notaz said:
Since you make it sound like it's the end of the world I want you to give me color mappings you think are correct. Genesis/MD has 3 bits per pixel, meaning each color component can have values from 0 (black) to 7 (max brightness). There is a mode called shadow/hilight mode which (sort of) adds another bit, giving 0..15 (well it's really 14 on the real hardware but that's details). Picodrive runs in RGB565 mode on all ports I maintain, meaning intensity range is 0..31 for red and blue and 0..63 for green.

The thing is levels are not linear - steps are not even. That has been measured on the real hardware:
http://img269.imageshack.us/i/upperw.png/
(ignore left side of the image, it's another test).
As you can probably see, intensity increase from black to 1 is much larger than from 1 to 2, similar situation on the other end. This is emulated wrong on both current and previous version.
It is not the end of the world. Maybe I was a bit harsh, sorry.

I can understand why they made the jump from 0-1 high that makes sense, this was probably so the first color values would be more likely to still show on CRTs and wouldn't be lost.

I made this pic to illustrate what is going on. The first is original, the second is on Pandora, I use the default LCD gamma. You can see darker shades fall too dark too soon. You can also see higher brightness values go too high, too soon. To fix I would leave 0 at 0 obviously but bump the lower registers up a bit to smooth out the curve, leave the highest value at 7 (you want the max value the brightest or the image will be too dark) but the ones below that need to smooth out.

What are the current numbers? I can see the difference on an image but am not as good at figuring it out from these raw numbers without current reference values. If I had a reference to go by then I would have better luck with figuring out values to fill in table.

picogamma.png
 
Last edited by a moderator:
Back
Top