MathewWi / fbzx-wii

Automatically exported from code.google.com/p/fbzx-wii
GNU General Public License v3.0
0 stars 0 forks source link

Additional screen settings #22

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
While doing some tests with the NTSC mode, I've noticed that it would be quite 
useful having an option to change the emulation's screen mode inside the 
emulator.

Currently, the emulator uses the screen mode that's set in the Wii's internal 
configuration so, in order to change it, the user has to exit the emu, exit the 
Homebrew Channel, go into the Wii options, go into the screen options, change 
the mode, go back to the options menu, back to the Wii menu, load the Homebrew 
Channel and load the emu again...

Based on the screen options in Genesis Plus GX (the only emulator for Wii I 
know that manages to have perfect video and audio synchronization without 
skipping any frames) and Spectaculator (possibly the most complete Spectrum 
emu), here's an attempt for an ideal "Screen Settings" menu:

-Display
--Interlaced
--Original
--Double strike

-TV mode:
--Auto (depends on currently emulated system, ignores the Wii's internal 
configuration)
--50Hz
--60Hz

-Vsync
--Auto
--Off

-GX Bilinear Filter
--Off
--On

-Aspect ratio
--Auto (based on the Wii's internal configuration)
--4:3
--16:9

-Screen size (ignored when "Double strike" is active)
--Original
--Full height
--Custom

-Screen position
--Original
--Custom

-Color mode
--Color
--B&W
--Green

-Screen filter
--Off
--RGB monitor
--Scart (RGB)
--Composite Video
--Aerial (RF) input

-Scanlines (ignored when "Double strike" is active)
--Off
--On

I'd leave out the current "Double scan" and "Buffer resolution" options, since 
their only noticeable effects seem to be making the display darker and blurrier 
without an improvement in efficiency.

Despites the ability of changing the video mode proposed here, the main menu 
should (ideally) always use the Wii's configured screen mode (like it does 
now), just in case the user accidentally select a mode that's not supported by 
their TV.

Original issue reported on code.google.com by iceknigh...@gmail.com on 4 Jan 2013 at 1:06

GoogleCodeExporter commented 9 years ago
In the past I tried to change the screen mode inside the emulator with little 
success.

I succeded only to change from 480i to 480p and viceversa, and from 576i to 
576p and viceversa but not between 480i and 576i which is more interesting.

FBZX Wii is based on the SDL library (FB stands for Frame Buffer which the SDL 
uses) and the library seems not to properly work with the change of settings 
applied directly to the hardware.

Anyhow in the future I want to add more settings as you suggest (maybe some 
filters and the green color mode). 

Original comment by olimpier...@gmail.com on 5 Jan 2013 at 4:35

GoogleCodeExporter commented 9 years ago
-----------------------------------
"FBZX Wii is based on the SDL library (FB stands for Frame Buffer which the SDL 
uses) and the library seems not to properly work with the change of settings 
applied directly to the hardware."
-----------------------------------

I've just read that the author of GxGeo (NEO-GEO emulator for Wii) was forced 
to replace all the SDL functions "with libogc VIDEO/GX and AUDIO calls" 
(whatever that means) for it to run fast enough to make things playable. I'm 
not much of an expert on this, but perhaps this could be a clue on how to 
optimize the emulator's performance?

I mean, seeing how fast NEO-GEO and CPS2 games run with this, making such a 
change in a Spectrum emulator might even make it possible to play the tapes in 
ultra-speed without even having to skip any frames... right?

Also, Genesis Plus GX seems to have no problem changing from one video mode to 
another anytime, which I assume is also a GX thing, so it might be even more 
useful than just for speeding things up.

Original comment by iceknigh...@gmail.com on 5 Jan 2013 at 9:10

GoogleCodeExporter commented 9 years ago
It is exactly as you wrote. SDL library is slower than "libogc VIDEO/GX and 
AUDIO calls" since SDL is a layer over libogc (SDL calls the libogc).
But there are many reasons why I do not want to use libogc:

1) I know very little about libogc (there is not an exstensive dcumentation).
2) I should rewrote a large part of program code.
3) SDL allows to easly port FBZX Wii to other platforms (I ported FBZX to Wii 
in few days).
4) I wrote FBZX Wii since I am interesting in SDL (I am the mainter of other 
emualtors based on SDL - UAE Wii and C64-network/ Frodo).  

Original comment by olimpier...@gmail.com on 6 Jan 2013 at 8:06

GoogleCodeExporter commented 9 years ago
Issue 50 has been merged into this issue.

Original comment by olimpier...@gmail.com on 5 May 2013 at 9:16