Comments (5)
The default resolution is currently the Low, 320x180
resolution @ 16:9 aspect ratio.
I think a stricter selection is better. An oft-cited benefit of developing for a virtual console is that it is helpfully constrained.
Yep exactly the reason for opening this up to discussion. Flexibility is good, but too much could let people shoot themselves in the foot and end up with huge black bars or bad scaling.. Consistency is good, but too much and everything is the same.
But I do think it would be great to add in some square resolutions, like
Name | Width | Height | Total Pixels |
---|---|---|---|
UltraLow | 64 | 64 | 4,096 |
VeryLow | 128 | 128 | 16,384 |
Low | 256 | 256 | 65,536 |
Medium | 512 | 512 | 262,144 |
High | 720 | 720 | 518,400 |
VeryHigh | 1024 | 1024 | 1,048,576 |
UltraHigh | 1080 | 1080 | 1,166,400 |
And potentially some 4:3 ones... but there are ~12 decent resolutions we could use to cover flexibility back towards the 1920x1080 target with good scaling. Some of the iconic classics like 320x240, 640x480, would likely be OK, but 800x600, 1024x768, are too big and would end up with borders.
from gamercade_console.
Took a second pass at 4:3 resolutions...
Name | Width | Height | 1080 Scaling | 720 Scaling | Total Pixels |
---|---|---|---|---|---|
UltraLow | 120 | 90 | 12 | 8 | 10,800 |
VeryLow | 160 | 120 | 9 | 6 | 19,200 |
Low | 240 | 180 | 6 | 4 | 43,200 |
Medium | 360 | 270 | 4 | 2.666666667 | 97,200 |
High | 480 | 360 | 3 | 2 | 172,800 |
VeryHigh | 960 | 720 | 1.5 | 1 | 691,200 |
UltraHigh | 1440 | 1080 | 1 | 0.666666667 | 1,555,200 |
We lose those "iconic" resolutions from previous times, but make up for it with solid consistency and a similar distribution against the standard 16:9 ones.
Square resolutions can be:
Name | Width | Height | 1080 Scaling | 720 Scaling | Total Pixels |
---|---|---|---|---|---|
UltraLow | 64 | 64 | 16.875 | 11.25 | 4,096 |
VeryLow | 128 | 128 | 8.4375 | 5.625 | 16,384 |
Low | 256 | 256 | 4.21875 | 2.8125 | 65,536 |
Medium | 384 | 384 | 2.8125 | 1.875 | 147,456 |
High | 512 | 512 | 2.109375 | 1.40625 | 262,144 |
VeryHigh | 768 | 768 | 1.40625 | 0.9375 | 589,824 |
UltraHigh | 1024 | 1024 | 1.0546875 | 0.703125 | 1,048,576 |
Squares are kinda a special case andI'm fine with them having borders around the edges. Also I decided against including 720x720 and 1080x1080 just to keep with the "powers of 2-ish" theme. I think in the farther future we could add something like "Exotic Resolutions" for advanced usesrs, and use things like 720 and 1080 squares, portrait resolutions, and those iconic 4:3 ones which just don't scale well these days.
Anyway, I think breaking this into a selection process of (1) Aspect Ratio, then (2) Resolution helps keep it simple. Instead of bombarding the user with 21 new resolution choices, they are presented with the default 16:9, Low, and can adjust to Square or Retro (or Classic, the name for 4:3), and are still presented with the familiar Ultra/Low/Med/High settings.
from gamercade_console.
Some additional thoughts on this topic: The current resolutions were picked due to their ability to scale perfectly into either 1080p , 720p, or both.
The currently supported resolutions are:
Resolution | Width x Height | Scale Ratio with 1080p | Scale Ratio with 720p | Total Pixels |
---|---|---|---|---|
UltraLow | 128 x 72 | 15x | 10x | 9,216 |
VeryLow | 160 x 90 | 12x | 8x | 14,400 |
Low | 320 x 180 | 6x | 4x | 57,600 |
Medium | 480 x 270 | 4x | Not divisible (2.667x) | 129,600 |
High | 640 x 360 | 3x | 2x | 230,400 |
VeryHigh | 1280 x 720 | Not divisible (1.5x) | 1x | 921,600 |
UltraHigh | 1920 x 1080 | 1x | Not divisible (0.75x) | 2,073,600 |
So with that in mind, we should target these resolutions
Resolution | Name | Aspect Ratio | Total Pixels |
---|---|---|---|
1440 x 1080 | UltraHigh | 4:3 | 1,555,200 |
960 x 720 | VeryHigh | 4:3 | 691,200 |
1080 x 1080 | UltraHigh | 1:1 | 1,166,400 |
720 x 720 | VeryHigh | 1:1 | 518,400 |
And work our way down.
Alternatively, we could just open up the resolutions and allow them to be input by the user, with some prevention of going over 1920 x 1080, and recommending those with pixel perfect scaling. Include useful data like aspect ratio, and some common recommended ones.
from gamercade_console.
Alternatively, we could just open up the resolutions and allow them to be input by the user
I think a stricter selection is better. An oft-cited benefit of developing for a virtual console is that it is helpfully constrained.
You may even consider determining a default resolution thatβs already set for people who just wanna get going as quickly as possible. I reckon that ought to be either the Low or High resolution; can only be one though!
from gamercade_console.
Closing this as it will be resolved in #98
from gamercade_console.
Related Issues (20)
- MacOs file has no extension
- Incorporate input_delay settings for p2p sessions HOT 1
- DATA PACKS: WASM Linear Memory, Rollback & Console Constraints HOT 2
- Gauging Interest in: Parallel Compute Instruction Set, Vector Processing Unit, or GPU-lite interface. HOT 1
- Audio Engine: Support playback for other formats HOT 1
- Import Sprite Sheet: Make removal of empty sprites optional HOT 1
- RetroArch Core
- Gamercade-Mac binaries aren't executable by default. HOT 1
- ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave HOT 7
- Detect Desyncs
- Support >2 Total Network Connections HOT 1
- Support for Mouse & Mouse Api HOT 2
- Determine Max Game Rom Size HOT 3
- Add `write_pixel_buffer` type of graphics function
- Console Web Support HOT 2
- Allow Opening of `.wasm` files with default assets. HOT 1
- `gamercade_rs` Crate 0.1.2 is a Breaking Release, But Not Marked As Such HOT 1
- importing a palette should order colors from left to right, and top to bottom
- Investigate `bitcode` vs `bincode` for filesystem HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gamercade_console.