English Amiga Board


Go Back   English Amiga Board > Support > support.FS-UAE

 
 
Thread Tools
Old 27 January 2013, 14:38   #1
FrodeSolheim
FS-UAE Developer

FrodeSolheim's Avatar
 
Join Date: Dec 2011
Location: Førde, Norway
Age: 39
Posts: 3,638
New theme options, more flexible themes and easier to create

I have made improvements to the theming system in version 2.1.21, and I plan to improve it further. To use the new features described here, download the latest development version!

You may suggest features if you want to do something with a theme which is not currently possible

I have attached a demo theme which uses many of the new features. To use this, extract the "Demo" theme to Documents/FS-UAE/Themes, and use the FS-UAE option theme = Demo.

New custom overlay names

Overlays now have proper names (instead of custom_x): df0_led, df1_led, df2_led, df3_led, df0_disk, df1_disk, df2_disk, df3_disk, power_led, hd_led, cd_led, md_led

Themes optimized for specific resolutions

You can now specify the width and height for the theme (theme_width, theme_height). Overlays will be scaled according to this. The default is 1920 and 1080. Note: themes are scaled/stretched to fill the screen, but these dimensions are used to calculate how to scale the overlay images. So now it is possible to design a theme (to be sharpest) at a custom resoluton.

Alternative overlay states

Many overlays, such as the "LED overlays" can now have multiple states, and you can supply different images for any/all states. For example. df0_led can have state 0 (off), state 1 (reading) and state 2 (writing). To specify images for the different states, use df0_led_0.png, df0_led_1.png and df0_led_2.png. You don't need to provide all states, for example you can skip df0_led_0.png (off) if nothing should be drawn for this state. df0_led_1.png can be shortened to df0_led.png. The state images for the same overlay must currently have the same size.

The dfx, cd, hd, and md leds all have read/write states. State 2 for the CD led is for CD audio playing.

New overlays

New "led" overlays: vsync_led, fps_led, audio_led (these may change). These display emulation status. These overlays can also have different states:
* State 1 : on/ok.
* State 2: Currently, fps_led_2 state is used when the Amiga runs at 60 Hz (NTSC), and vsync_led_2 state is used when only flipping on vblank (state 1 = full video sync, state 0 = no video sync)
* State 3 = error/warning, for example buffer underrun (audio led), frame rate to low (fps_led) and missed vblanks (vsync_led).

New overlays are available to replace the "theme_overlay_image": top_left_overlay.png, top_right_overlay.png, bottom_left_overlay.png bottom_right_overlay.png. You can use any (or all) of these. The reason to have multiple ones are so you can for example have an overlay on the left side and one on the right without having to have a huge transparent area in the middle (which is just inefficient). You can still use a "huge one" like before, simply use top_left_overlay.png. You don't specify the filename in the config file with these overlays.

Shorthand theme option names

The options which start with theme_ can be put under [theme] in theme.conf, and you then drop the theme_ prefix.

To specify the position for overlays using the new names, use something like this (x, y coordinates):
Code:
[theme]
df0_led_pos = 210, 200
(the real option name is theme_df0_led_pos if specified in another ini group)

Fixed zoom for themes

A new option theme_zoom is available as an alternative to viewport. This takes in four numbers (x, y, w, h):
Code:
theme_zoom = 58, 22, 672, 540
This is the preferred way to specify a fixed cropped Amiga display in themes, since it will not be overridden by viewport corrections from the online database / Launcher for example.
Attached Files
File Type: zip demo_theme.zip (129.5 KB, 256 views)
FrodeSolheim is offline  
Old 27 January 2013, 17:24   #2
nexusle
Banned
 
Join Date: Jul 2010
Location: Earth
Age: 42
Posts: 500
I wish a option to position the amiga screen free in the theme. If we specifiy a x/y coordinate for the upper left corner of the amiga screen, the amiga screen could be start at this point. I've created a shematic what I mean:

Last edited by prowler; 30 August 2013 at 02:26. Reason: Rewind, but no schematic. :(
nexusle is offline  
Old 27 January 2013, 17:44   #3
nexusle
Banned
 
Join Date: Jul 2010
Location: Earth
Age: 42
Posts: 500
Special characters in fonts are even shown uppercase. Example:
"SpeicherstÄnde" and not "Speicherstände"

Last edited by prowler; 30 August 2013 at 02:23. Reason: Rewind.
nexusle is offline  
Old 27 January 2013, 18:01   #4
FrodeSolheim
FS-UAE Developer

FrodeSolheim's Avatar
 
Join Date: Dec 2011
Location: Førde, Norway
Age: 39
Posts: 3,638
Quote:
Originally Posted by nexusle View Post
I wish a option to position the amiga screen free in the theme. If we specifiy a x/y coordinate for the upper left corner of the amiga screen, the amiga screen could be start at this point. I've created a shematic what I mean:
This is already possible with existing options (align_x, align_y) (but a little bit of math is required). Example:

* Say the theme is designed for 1920 x 1080
* And you wish to display the Amiga content in a 640 x 512 "window"
* At pixel offset x = 150, y = 100

You'll then get:
* scale_x = -(640 / 1920) = -0.3333333333333333
* scale_y = -(521 / 1080) = -0.4824074074074074
* align_x = 150 / (1920 - 640) = 0.1171875
* align_y = 100 / (1080 - 512) = 0.176056338028169

For other resolutions, just change the numbers in the formulas correspondingly!

You'll also probably want something like this (for this example):
* theme_zoom = 74 36 640 512
* disable_aspect_correction = 1

Example theme.conf:
Code:
[fs-uae]
scale_x = -0.3333333333333333
scale_y = -0.4824074074074074
align_x = 0.1171875
align_y = 0.176056338028169
disable_aspect_correction = 1

[theme]
zoom = 74 36 640 512
width = 1920
height = 1080
Quote:
Originally Posted by nexusle View Post
Special characters in fonts are even shown uppercase. Example:
"SpeicherstÄnde" and not "Speicherstände"
There was a missing bit in a bit mask in the UTF-8 decoder. I just didn't notice it because the default font is all caps, and by coincidence, this missing bit caused the letter to be decoded as upper case (it is fixed for 2.1.22).

Last edited by FrodeSolheim; 27 January 2013 at 19:17.
FrodeSolheim is offline  
Old 27 January 2013, 18:46   #5
nexusle
Banned
 
Join Date: Jul 2010
Location: Earth
Age: 42
Posts: 500
*** Deleted ***

Last edited by nexusle; 23 March 2013 at 13:46.
nexusle is offline  
Old 27 January 2013, 18:51   #6
FrodeSolheim
FS-UAE Developer

FrodeSolheim's Avatar
 
Join Date: Dec 2011
Location: Førde, Norway
Age: 39
Posts: 3,638
Yes, use it like that, but remember to drop theme_ prefix so that it'll be simply "width" and "height" if you put it under the [theme] section.
EDIT: I have updated my above post with an example theme config file.

Last edited by FrodeSolheim; 27 January 2013 at 19:17.
FrodeSolheim is offline  
Old 19 March 2013, 07:38   #7
TCD
Registered User

TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 42
Posts: 24,012
I'm trying to globally increase the emulation window size (to 1280x1024) and it's kinda giving me a headache

First I tried it with defining window_height & window_width in the custom settings which didn't work.

Now I tried to make a very simple theme with only:
Code:
[fs-uae]

disable_aspect_correction = 1

[theme]

width = 1280
height = 1024
I created a folder within 'Documents/FS-UAE/Themes' and placed a 'theme.conf' with that content there. Last step was to specify the folder via 'theme = <themefolder>' in custom settings. I find the 'set theme to ...' with my folder name in the logs too, but the window size isn't any bigger

Any hints how to get this working would be really appreciated
TCD is offline  
Old 19 March 2013, 11:39   #8
nexusle
Banned
 
Join Date: Jul 2010
Location: Earth
Age: 42
Posts: 500
*** Deleted ***

Last edited by nexusle; 23 March 2013 at 13:30.
nexusle is offline  
Old 19 March 2013, 11:45   #9
TCD
Registered User

TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 42
Posts: 24,012
Exactly. If I set 'window_height' and 'window_width' for a configuration (custom options) it works nicely, but not in custom settings.
TCD is offline  
Old 19 March 2013, 12:29   #10
FrodeSolheim
FS-UAE Developer

FrodeSolheim's Avatar
 
Join Date: Dec 2011
Location: Førde, Norway
Age: 39
Posts: 3,638
Hi, I found a bug which prevents window_width and window_height to be passed on properly to FS-UAE (they'll basically always be set to "" unless specified in the current configuration). Will include fix in a 2.2.1 update

(EDIT: PS: theme_width and theme_height is only used for controlling the scale of overlay images in themes).

Last edited by FrodeSolheim; 19 March 2013 at 12:36.
FrodeSolheim is offline  
Old 19 March 2013, 13:57   #11
TCD
Registered User

TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 42
Posts: 24,012
Thank you Frode I shall wait for an update then (and maybe you can also include the gui_language option? )
TCD is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
theme park and theme hospital did i imagine this title on cd32 sian request.Other 1 07 June 2013 01:43
[Theme] New Overlay Theme for FS-UAE nexusle support.FS-UAE 21 27 January 2013 20:12
PCMCIA flexible extender zharn support.Hardware 1 27 January 2013 08:29
[Theme] New Overlay Theme for FS-UAE inspired by Amiga CD32 nexusle support.FS-UAE 0 19 January 2013 21:11
More flexible Vsync support to include Sync rates very close to 50hz jimmy2x2x request.UAE Wishlist 8 29 March 2011 20:45

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 23:23.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Page generated in 0.07747 seconds with 13 queries