Author Topic: The Great Themes Collection v10.1 - Final Edition!  (Read 20480 times)

hedergim

  • Full Member
  • ***
  • Posts: 35
    • View Profile
Re: The Great Themes Collection v7.0 - The missing themes part 2
« Reply #150 on: October 12, 2020, 08:46:22 AM »
The Best
Downloading

Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Re: The Great Themes Collection v7.0 - The missing themes part 2
« Reply #151 on: October 12, 2020, 12:42:25 PM »
The Best
Downloading

Awesome! tell me what you think of the modified on-screen keyboard style.

« Last Edit: October 27, 2020, 02:16:42 AM by Yaron2019 »

Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Re: The Great Themes Collection v8.0 - It knows how to count games!
« Reply #152 on: October 17, 2020, 08:01:43 AM »
Pablo Picasso once said that "Good Artists Copy, Great Artists Steal". Well, I am a great artist as I have stolen adapted pcca-matrix's code for system game counting from the PCCA theme :D
I have also finally "discovered" the option to use modules and not just copy files into every layout folder like a monkey (one evolution at a time).
This was particularly useful with the on-screen keyboard search as it reduced the disk space the collection takes by about 80 MB and reduced the file count by a massive 4,171 files (56% reduction)!
I initially planned on customizing each search window per it's system but decided that the current look is great and that I'm not going to bother with it.

The system games count works in the following manner:
When launching AM with the version 8.0 of the Great Themes Collection, there will be an initial count. When you enter a system, if the initial count is different then the
actual number of games available, there will be a recount for that specific system. This is especially handy with systems like MAME where we usually have a bunch of filters
applied. In order to have this recount, make sure that the current filter is set to "All" (the default filter in AM). Any time the collection detects that the available games are
diferent then the last count (like when you add / remove games, or add / remove systems) there should be a recount when navigating through the systems
(in between systems or from a system to the main menu or vice versa). Why? because pcca-matrix has not written code yet for anything else and when he does I will be a great artist again!

I know that there are quite a few theme devs that wanted this feature so feel free to download the latest version and become great artists as well.

I also added some missing default cartart files to a few themes.

IMPORTANT: I recommend you delete your current Great Themes Collection layouts and copy the new layouts in order to profit from the reduction in disk space.
Also, you must copy from the included modules folder the 'gtc' and 'gtc-kb' folders to your attract\modules folder.

Cheers,
Yaron


Update demo video:
https://youtu.be/uC1_8tKvN64

Download link and instructions on original post page:
http://forum.attractmode.org/index.php?topic=3289.msg23120#msg23120

Game counting
« Last Edit: October 27, 2020, 02:16:06 AM by Yaron2019 »

Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Re: The Great Themes Collection v8.0 - It knows how to count games!
« Reply #153 on: October 18, 2020, 04:35:37 AM »
I have a life defining question to the community: what looks better? the size of the "Free Play" and red/blue joystick as it is now (look at the  screenshot in previous post) or larger as it is in Hyperspin? ? ? ?
I can't decide!  >:(

Karlosworkz

  • Full Member
  • ***
  • Posts: 72
  • ►►►Games Retrô Dream◄◄◄
    • View Profile
Re: The Great Themes Collection v8.0 - It knows how to count games!
« Reply #154 on: October 18, 2020, 11:22:46 PM »
Yaron you are very fierce in the layout how do I implement this count in my themes ??  It's very good, congratulations👏👏👏👏

Pablo Picasso once said that "Good Artists Copy, Great Artists Steal". Well, I am a great artist as I have stolen adapted pcca-matrix's code for system game counting from the PCCA theme :D
I have also finally "discovered" the option to use modules and not just copy files into every layout folder like a monkey (one evolution at a time).
This was particularly useful with the on-screen keyboard search as it reduced the disk space the collection takes by about 80 MB and reduced the file count by a massive 4,171 files (56% reduction)!
I initially planned on customizing each search window per it's system but decided that the current look is great and that I'm not going to bother with it.

The system games count works in the following manner:
When launching AM with the version 8.0 of the Great Themes Collection, there will be an initial count. When you enter a system, if the initial count is different then the
actual number of games available, there will be a recount for that specific system. This is especially handy with systems like MAME where we usually have a bunch of filters
applied. In order to have this recount, make sure that the current filter is set to "All" (the default filter in AM). Any time the collection detects that the available games are
diferent then the last count (like when you add / remove games, or add / remove systems) there should be a recount when navigating through the systems
(in between systems or from a system to the main menu or vice versa). Why? because pcca-matrix has not written code yet for anything else and when he does I will be a great artist again!

I know that there are quite a few theme devs that wanted this feature so feel free to download the latest version and become great artists as well.

I also added some missing default cartart files to a few themes.

IMPORTANT: I recommend you delete your current Great Themes Collection layouts and copy the new layouts in order to profit from the reduction in disk space.
Also, you must copy from the included modules folder the 'gtc' and 'gtc-kb' folders to your attract\modules folder.

Cheers,
Yaron


Demo video (v5.0):
https://www.youtube.com/watch?v=nkw0JO4Q3IQ


Download the Collection:
https://mega.nz/file/VVljEY6I#nDw4WrzeIazjZaiJWsjOmYXR70j-SS8xqYB7fQmbC3M


Those who want to build additional themes for this collection, here are all the art files for each theme in xcf format (Gimp):
https://mega.nz/file/5JNXAQgb#CUo1xcZo5X_a7e43kXedLoVZEKhnGTJAaPYWAqqiABw



Instructions on how to use the collection:

-------------------------------------------------------
This is a theme collection for the Attract Mode front-end (v2.6.1).
It is best suited for wide screen displays.


Stage 1: Prepare the games roms and media for the emulated system
--------------------------------------------------------------------------------------------
Download all the game roms and media and place them in folders of your choosing.
For example, for MAME, place the roms in  'C:\my_games\mame\roms'

You can download all the media you need from emumovies.com (wheel logos, videos, cart art, box art, etc)
In attract mode's 'menu-art' folder, create a folder for your system, example:
'C:\attract\menu-art\mame'

In this folder create the following folders:
C:\attract\menu-art\mame\wheel
C:\attract\menu-art\mame\videos
C:\attract\menu-art\mame\boxart
C:\attract\menu-art\mame\cartart

Copy the relevant files to each folder (wheel logos to 'wheel', snap videos to 'videos', etc).

Now you need to connect the emulator to the media. For each system attract mode has an emulator cfg file located in
...\attract\emulators

In our example it will be: C:\attract\emulators\mame.cfg
You can edit this file with notepad or from within attract mode's menu system. Here you will tell attract mode what emulator to use, where to find all the art, etc.

It should look something like this:

# Generated by Attract-Mode v2.6.1
#
executable           E:/Arcade/Attract/apps/Mame/mame64nonag.exe
args                 [name]
rompath              E:/Arcade/Attract/apps/Mame/roms
romext               .zip;.chd
system               Arcade
info_source          listxml
exit_hotkey          Escape
artwork    marquee         c:/attract/menu-art/mame/marquee
artwork    snap            c:/attract/menu-art/mame/videos
artwork    wheel           c:/attract/menu-art/mame/wheel
artwork    boxart          c:/attract/menu-art/mame/boxart
artwork    flyer           c:/attract/menu-art/mame/flyer

As you can see, the "artwork" label tells attract mode to find wheel in 'c:/attract/menu-art/mame/wheel', snap (videos) in 'c:/attract/menu-art/mame/videos'
etc.

Replace the paths in the example to the ones you have, save and close the file.


Stage 2: Set up the collection as your themes of choice
-------------------------------------------------------------------------
1. Copy the contents of the included layouts folder to your attract\layouts folder.
2. Copy the sounds, videos and letters folders to your main attract folder (where the attract.exe file is)
3. Copy the 'gtc' and 'gtc-kb' folders from the included modules folder to your attract attract\modules folder
4. Launch attract mode and assign the themes (layouts) that you want to the emulators you have:
Pressing 'Tab' will bring the main 'Configure' menu on screen. Then go to 'Displays', choose the display you want to configure by
pressing 'Enter' and choose a layout from the 'Layout' option (navigate the layouts list with up/down arrows or joystick).

Attract Mode should now know what emulators to use, where to find the art it needs and what theme to use for each system you assigned it for.


Performance
-----------------
If performance on low end systems such as the Pi is slow, you can improve it by disabling shader related options in the layout options menu:
- In the 'At-The-Arcade' layout series set "Enable CRT screen glow" to "No" and if that is not enough you can also set "Enable lighted marquee effect" to "No" as well.
- In the 'Hyperspin-Theme-Mode' layout series, set "Enable video shader effect" to "No".
- In any other layout (consoles, computers, handhelds), disable any bloom or glow effects, for example: set "Enable CRT bloom shader effect" to "No".


The themes included in this collection are best suited for wide screen displays

Currently there are 100 themes for 87 systems in the collection (including variations):
----------------------------------------------------------------------------------------------------------
Main Menus:
Hyperspin Main Menu Theme Mode (featured in the demo video)
Main Menu theme
Favourites

Arcade:
At-The-Arcade
At-The-Arcade Candy
At-The-Arcade HD
At-The-Arcade Sega Model 2
At-The-Arcade Sega Model 3
At-The-Arcade Naomi
At-The-Arcade Naomi v2
At-The-Arcade Atomiswave
At-The-Arcade SNK MVS
At-The-Arcade Capcom Classics
At-The-Arcade Capcom Play System 1,2,3
At-The-Arcade OpenBOR
At-The-Arcade Mugen (M.U.G.E.N)
Hyperspin Theme Mode

Consoles:
SNK Neo Geo CD
SNK Neo Geo AES
Nintendo Wii
Nintendo Gamecube
Nintendo 64
Super Nintendo Entertainment System
Super Nintendo Entertainment System - Simple
Nintendo Super Famicom
Nintendo Super Famicom - Simple
Nintendo Entertainment System
Nintendo Entertainment System - Lava
Nintendo Famicom
Nintendo Famicom Disk System
Sega Dreamcast
Sega CD
Sega CD - Dark
Sega Saturn
Sega Saturn Japan
Sega 32X
Sega Genesis
Sega Mega Drive Japan
Sega Master System
Sega SG-1000
Daphne
Sony Playstation 3
Sony Playstation 2
Sony Playstation
Panasonic 3DO
Commodore Amiga CD32
NEC PC Engine-CD
NEC PC Engine
NEC Turbografx-16
NEC Turbografx-CD
Microsoft XBox 360
Microsoft XBox
Amstrad GX4000
Atari 2600
Atari 5200
Atari 7800
Atari Jaguar
ColecoVision
Mattel Intellivision
Magnavox Odyssey 2
Bally Astrocade
Emerson Arcadia 2001
GCE Vertex

Computers:
PC Games
Commodore Amiga Forever!
Commodore Amiga-Memories
Commodore 64
Commodore VIC-20
Sinclair ZX Spectrum
Atari ST
Atari 8-bit
Amstrad CPC
Windows 3.x
Sharp X68000
MS-DOS
MS-DOS Vintage
MSX2
MSX
Acorn BBC Micro
Tandy TRS-80 Color Computer
Apple II

Handhelds:
Nintendo 3DS
Nintendo DS
Nintendo Game Boy Advance
Nintendo Game Boy Color
Nintendo Game Boy
Nintendo Virtual Boy
Sony PSP
SNK Neo Geo Pocket Color
SNK Neo Geo Pocket
Sega Game Gear
Atari Lynx
Bandai WonderSwan Color
Bandai WonderSwan
Nintendo Game & Watch
Silence and a smile are two powerful weapons. The smile solves problems, silence avoids them...

Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Re: The Great Themes Collection v8.0 - It knows how to count games!
« Reply #155 on: October 19, 2020, 08:38:59 AM »
Yaron you are very fierce in the layout how do I implement this count in my themes ??  It's very good, congratulations👏👏👏👏

Hey Karlos, thanks!

There are three parts to this game counting system:
1. The gtc module (you can find it in the download's module folder)

2. Counting code that belongs to a Main Menu (Display menu) layout - this code does the first count and creates the gtc.stats file in which all the counting data is stored.
It also shows the counting result. It will do a second count if it detects that a system was added or removed. You can find this code in my 'Main Menu' and 'Hyperspin Main Menu Theme Mode' layouts.

3. Counting code that belongs to any system layout you have (MAME, NES, SNES, Genesis, etc). This code counts the games only for the system it belongs to and only if it detects that the actual number of games is different from the number of games in the gtc.stats file. It happens in two cases: If the first count done by the main menu shows a different number then the system has to show - for example, the main menu counts 3000 games for MAME, but when you go into the mame system it shows only 2000 games because you have global filters. so it will do a new count for MAME ONLY and write it to gtc.stats. Example for global filters my MAME system has in the attract.cfg file:
Code: [Select]
global_filter       
rule                 FileIsAvailable equals 1
rule                 Category not_contains Device|Computer|Electromechanical|Casino|handheld|tabletop|gambling
rule                 Status equals good|imperfect
rule                 Category not_equals not_equals casino / cards|casino / reels

-----------------------------------------------------------------------------------
What you need to add:
1. The module contains the functions that do the counting - you don't need to edit this, just place the gtc folder in your attract\modules folder.

2. The counting code for the Main/Display Menu layout is as follows, just copy it to the Main/Display Menu layout you have:
Code: [Select]
/////////////////////////////////////////////////////////////////////////////////
// Main Menu games count
fe.load_module("file");
fe.load_module("file-format");
fe.load_module("gtc");

// change m_infos static x,y,w,h values to relocate text
local m_infos = fe.add_text("",400, 400, 500, 500);
m_infos.align = Align.Left;

m_infos.word_wrap = true;
m_infos.charsize = 24;
m_infos.set_rgb(0, 0, 0);

main_infos <- {};
if( !file_exist(FeConfigDirectory + "gtc.stats") )
{
fe.overlay.splash_message ("Counting games, please wait...")
print("Created the gtc.stats file!\n");
refresh_stats();
}
main_infos <- LoadStats();

function stats_text_update( sys )
{
    if( main_infos.rawin( sys ) )
        m_infos.msg = "Games: " + main_infos[sys].cnt;
else
        m_infos.msg = "";
}

function main_menu_stats( ttype, var, ttime )
{
local curr_sys;
if ( ttype == Transition.StartLayout)
{
curr_sys = fe.list.name;
if( main_infos.rawin(curr_sys) )
{
if(fe.list.size != main_infos[curr_sys].cnt)
{
main_infos[curr_sys].cnt = fe.list.size;
SaveStats(main_infos);
print("Counted games for " + curr_sys + "\n");
}
}
else  // new system added , create new entry
{
main_infos <- refresh_stats(curr_sys);
print("Counted games for new system: " + curr_sys + "\n");
}

stats_text_update( fe.game_info(Info.Title) );
}

if ( ttype == Transition.ToNewSelection )
stats_text_update( fe.game_info(Info.Title, var) );

return false;
}
fe.add_transition_callback( "main_menu_stats" );


3. The counting code for the systems themselves. Add it to every system layout.nut file you have (MAME, SNES, etc):

Code: [Select]
/////////////////////////////////////////////////////////////////////////////////
// System games count
fe.load_module("file");
fe.load_module("file-format");
fe.load_module("gtc");

main_infos <- {};
if( !file_exist(FeConfigDirectory + "gtc.stats") )
{
fe.overlay.splash_message ("Counting games, please wait...")
print("Chicuelo Mix created the gtc.stats file!\n");
refresh_stats();
}
main_infos <- LoadStats();

function main_menu_stats( ttype, var, ttime )
{
local curr_sys;
if ( ttype == Transition.StartLayout)
{
curr_sys = fe.list.name;

if( fe.filters[fe.list.filter_index].name.tolower() == "all" ) // make sure there is no filter
{
if( main_infos.rawin(curr_sys) )
{
if(fe.list.size != main_infos[curr_sys].cnt)
{
main_infos[curr_sys].cnt = fe.list.size;
SaveStats(main_infos);
print("Counted games for " + curr_sys + "\n");
}
}
}
}
return false;
}
fe.add_transition_callback( "main_menu_stats" );

It is also important to notice, that the system game count will work only when the filter is set to 'All'. If you set the filter to 'Favorites' for example, it will not count.
« Last Edit: October 19, 2020, 08:42:57 AM by Yaron2019 »

Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Release v9.0 focuses on bug fixing and finishing the final phase of the big clean-out.

The size of The Great Themes Collection v9.0 has been reduced by an additional 43MB and 861 files.
This is now LOWER in disk space then version v4.0 while having many more themes and features!

All common files (sounds, videos, art and letters) that are used by all themes are now in a folder named 'gtc-common'.
I also removed the 'pand-and-scan.nut' from all themes and added it as a module folder called 'gtc-pas'.

I now consider this collection to be efficient disk space wise and unless I find some issue, no further optimizations will be done in this regard.

Bug fixes:
- Fixed: Main menu themes will recount the number of games every time they load
- Fixed: Game count fails on Linux because of "\\" characters in the module code
- Fixed: Removed unused code from several themes
- Fixed: Wheel sound not playing on layout startup when "Enable startup animations" or "Enable startup sound" are set to No
- Fixed: Character art was not showing in ScummVM theme when "Enable startup animations" is set to No
- Fixed: Nintendo 3DS theme was missing startup sounds
- Fixed: multiple visual bugs
- Improved some sound effects

Tested on Windows 10 and Ubuntu 20.04 VM.

NOTICE: If you had an older version of the collection installed on your attract mode setup, you can remove from your attract folder the letters, videos and sounds folders. I have updated the instructions at the original post and in the included 'readme.txt' file. Make sure you remove the collection's layouts and modules and copy the new ones included!

Cheers,
Yaron

Download link and instructions on original post page:
http://forum.attractmode.org/index.php?topic=3289.msg23120#msg23120
« Last Edit: October 27, 2020, 04:48:00 AM by Yaron2019 »

Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
version 9.1 is a small optimization update that includes:

- Further reduction in size of about 30MB by consolidating bezels into the 'gtc-common' folder and by eliminating unnecessary mp3, mp4 and art files from the Lava theme
- Further code cleanup
- Minor visual enhancement to the Commodore VIC-20 theme and new fonts for the 'Main Menu' and 'ScummVM' themes

Cheers,
Yaron


Download link and instructions on original post page:
http://forum.attractmode.org/index.php?topic=3289.msg23120#msg23120
« Last Edit: November 01, 2020, 03:51:53 AM by Yaron2019 »

markoattract

  • Full Member
  • ***
  • Posts: 47
    • View Profile
Hi Yaron !!! As always your work is great !

I have a little question for you ... About the Keyboard search module, i have designed different "pixel.png" for every system, but now , with only one folder to load the module, i'have lost this feature .

My idea is : create a folder into "gtc-kb" folder named "systems" and put in all png's files renamed like the systems , "NEOGEO.png" "FBNEO.png" "MEGADRIVE.png" so every layout will have a different background per-system when open the search window ...

How can i modify the module.nut to do this ???

Sorry for my english, thank you for the answer and have a nice day ;)

Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Hi Yaron !!! As always your work is great !

I have a little question for you ... About the Keyboard search module, i have designed different "pixel.png" for every system, but now , with only one folder to load the module, i'have lost this feature .

Hey there my search loving friend! I hope all is well.
We haven't lost any capability at all. What you have to do in order to have a custom background for the search is to create whatever search background you want, place it in the system layout folder you want it in and change a small bit of the existing layout code:

Code: [Select]
KeyboardSearch(search_surface)
.keys_pos([ 0.05, 0.45, 0.9, 0.4 ])
.search_key( my_config["user_search_key"].tolower() )
.mode( "show_results" )
.text_font("BebasNeue Bold")
.bg_color(255,255,255,210) // first change
.text_color(0,255,0)
.keys_selected_color(0,255,0)
.bg("search_bg.png") // second change
.init()

and voilà! you can have whatever search background you want without system naming issues and without changing the module.

I attached the At-The-Arcade layout.nut + search_bg.png files for you to test. You can change the search_bg.png to whatever png file you want.

P.S
This is the proper way of doing it by the way - the module provides these built-in capabilities.
« Last Edit: October 28, 2020, 05:36:00 AM by Yaron2019 »

markoattract

  • Full Member
  • ***
  • Posts: 47
    • View Profile
Hi Yaron !!! As always your work is great !

I have a little question for you ... About the Keyboard search module, i have designed different "pixel.png" for every system, but now , with only one folder to load the module, i'have lost this feature .

Hey there my search loving friend! I hope all is well.
We haven't lost any capability at all. What you have to do in order to have a custom background for the search is to create whatever search background you want, place it in the system layout folder you want it in and change a small bit of the existing layout code:

Code: [Select]
KeyboardSearch(search_surface)
.keys_pos([ 0.05, 0.45, 0.9, 0.4 ])
.search_key( my_config["user_search_key"].tolower() )
.mode( "show_results" )
.text_font("BebasNeue Bold")
.bg_color(255,255,255,210) // first change
.text_color(0,255,0)
.keys_selected_color(0,255,0)
.bg("search_bg.png") // second change
.init()

and voilà! you can have whatever search background you want without system naming issues and without changing the module.

I attached the At-The-Arcade layout.nut + search_bg.png files for you to test. You can change the search_bg.png to whatever png file you want.

P.S
This is the proper way of doing it by the way - the module provides these built-in capabilities.

IT WORKS !!!

You are my HERO ! :D Thank you soooo much !!! :D :D

Fefeld

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: The Great Themes Collection v9.1 - Bug fixes and finishing the big clean-out!
« Reply #161 on: November 08, 2020, 01:41:19 AM »
Hi @Yaron2019, your work is pretty impressive.
I own a vertical CRT system 640x480.
will your theme work for me? if not any advice to get something similar to your theme working on a vertical cab?

thank you.


Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Re: The Great Themes Collection v9.1 - Bug fixes and finishing the big clean-out!
« Reply #162 on: November 09, 2020, 02:05:50 AM »
Hi @Yaron2019, your work is pretty impressive.
I own a vertical CRT system 640x480.
will your theme work for me? if not any advice to get something similar to your theme working on a vertical cab?

thank you.

Hi Fefeld ,
Thanks for the kind word!
My themes are best for wide screen displays. I don't think it will look great on a 640x480 vertical crt. I don't know if it will even work on it actually.
Look at the forum for Cosmo's collection - maybe it supports this kind of setup.
For themes that have a different style but are designed to work with vertical/non-vertical screens, take a look at: PCCA, Arcadeflow, Flat Blue and Verticool Deluxe.

Yaron2019

  • Sr. Member
  • ****
  • Posts: 310
    • View Profile
Re: The Great Themes Collection v10.0 - New themes! New Art! New Bug fixes!
« Reply #163 on: November 09, 2020, 02:21:20 AM »
The Great Themes Collection version 10.0 is here and it brings with it two new themes for the 'Nintendo Switch' and 'Nintendo Wii U', artistic upgrades to the 'PC Games' layout, Hyperspin transitions
to the Hyperspin Theme Mode layout and a few bug fixes, chief among them for the game counting code.

- Added two new themes: 'Nintendo Switch' and 'Nintendo Wii U'
- Added 5 beautiful artistic themes of popular brands to the existing 'PC Games' layout
- Added ability to play hyperspin transitions in Hyperspin-Theme-Mode
- Fixed in all themes: if system is new and does not exist in the gtc.stats file, it did not count that system's games
- Removed redundant games counting code from the two main menu themes and the 'gtc' module
- Enlarged the wheel logo sizes for all Hyperspin-Theme based layouts to better resemble the original
- Various small visual updates


Demo Video:
https://youtu.be/LLDZa7Eyriw


Download link and instructions on original post page:
http://forum.attractmode.org/index.php?topic=3289.msg23120#msg23120















« Last Edit: November 09, 2020, 09:24:02 AM by Yaron2019 »

Sinistar

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: The Great Themes Collection v10.0 - Released!
« Reply #164 on: November 13, 2020, 03:36:49 PM »
Hey Yaron2019

when I open your hyperspin themes on raspberry pi the animated text "press start" and "next game" including the joystick are upside down and backwards. Is there any fix to that? i looked at the file it is correct but when it comes up in attract mode on pi it is upsidedown and backwards.