Jump to content
(Open Beta) HyperSpin 2 is now available for everyone ×

HyperText: Autoscrolling Configurable Text in HyperSpin


dark13

Recommended Posts

Posted

 

What is HyperText?

It is a .swf as3 configurable widget that can be used as Artwork layer in HyperSpin theme.

 

How HyperText works?
1- It reads the name and path of the .swf itself to open YourHyperSpinFolder\dark13\HyperText/SystemName\SystemName.xml.

 

2- It load settings (font, font size, font color, window size, animation speed) and info from the xml.

 

3- A sequence of tween is used to scroll the text IF it is bigger than the window.

 

How can Be HyperText used in a theme?

 

The widget will work from any subfolder of  ..\Media\SystemName\ , so you can use in any Artwork folder.

You need 1 .swf per game as it reads its own name to load info, duplicating the file and renaming it is an automatized process (will explain it later, basically copy/paste a .swf in the same folder and use openoffice to create a RENAME.bat).

 

Path of  info/config xmls mirror HS path, so

 

W:\HyperSpin\Media\MySystemName\Images\Artwork4\GameName.swf

 

will search for

 

W:\HyperSpin\dark13\HyperText\MySystemName\MySystemName.xml

 

Game's Infos are store in an xml that configure the widget itself, here's the structure of the xml

<menu>

 <font_type>Ubuntu Condensed</font_type>
 <text_color>0x77cbfb</text_color>
 <text_size>17</text_size>
 <box_size_x>502</box_size_x>
 <mask_x_right>502</mask_x_right>
 <mask_y_down>154</mask_y_down>
 <rest_duration>200</rest_duration>
 <fade_duration>60</fade_duration>
 <rest_bottom_duration>200</rest_bottom_duration>
 <duration>6</duration>
 <mask_x_left>0</mask_x_left>
 <mask_y_up>0</mask_y_up>
 
<game name="16t (JAP)">GAME DESCRIPTION HERE</game>
<game name="3 Ninjas Kick Back (USA)">GAME DESCRIPTION HERE</game>
  </menu>

This widget is configurable, you can change lots of things in it to match a new theme

 

Configuration

 

 <font_type>                      You can use any font installed on your system, type the name of the font
 <text_color>                      Color of the text, use photoshop to get it and add after 0x
 <text_size>                        Font size
 <box_size_x>                    Width of the textbox in pixels
 <mask_x_right>                Just match   <box_size_x> (this value is linked to the mask, the other to the textbox itself)
 <mask_y_down>               Height of the texbox in pixels
 <rest_duration>                Rest duration before animation start (in frames)
 <fade_duration>               Fade in/fade out animation duration (in frames)
 <rest_bottom_duration>   rest duration once it has scrolled (in frames)
 <duration>                        Speed of the scrolling animation. It is a multiplier: 1 basically means 1 pixel scroll per frame
 <mask_x_left>                  Redundant value, it should be left to 0
 <mask_y_up>                   Redundant value, it should be left to 0

 

Testing system: https://www.dropbox.com/s/o7686q184xxmbvi/Sega%20Mega%20Drive%20Aeon%20Nox%20Test%20Wheel.zip?dl=0

 

Known bugs:

 

The code behind name and path auto-recognition is far from being perfect (must study a bit more arrays lol) but it should work. Just avoid "Media" and "Images" in your path (es C:/stuff/Media/Hyperspin... will not work). another problem is with game's name, if rom's name contains .swf it will not work (but honestly I don't think that string has ever been used in a game).

 

The text blinks slightly after fade in. It is a problem of flash. Embedding the font and caching as bitmap solve the problem (BUT it will make font choice unavailable)

 

16:9 Ratio correction needs embedding fonts and caching as bitmap

 

Pressing a keyboard will stop the animation after the current cycle it is going trough. This happen because an event listener is used to close ALL listener in the .swf to prevent memory leaking. Please use Xpadder and not joypad input when using this widget.

Please report if text is not showing up sometimes . Another listener might be needed (I never encountered this problem but I'm not 100% sure about the code I removing the .xml once variables have been set)

 

This thing has been tested by me and billyc999 BUT it needs massive testing, so please test and report any problem, consider it as an Alpha Release :)

Posted

Please check memory usage while testing the thing :D

 

Preparing an horizontal scrolling version.

 

xml will probably change a bit, using info inside a subchannel and not in the main one makes the thing more configurable with the .fla (You can code the thing to show more stuff included in the xml assubchannel).

  • 1 month later...
Posted

BUG!

 

Hypertext not working on consoles that have Long Names like Nintendo Entertainment System, Super Nintendo Entertainment System.  Could be a Truncation issue in the code.

Posted

BUG!

 

Hypertext not working on consoles that have Long Names like Nintendo Entertainment System, Super Nintendo Entertainment System.  Could be a Truncation issue in the code.

 

Check the spelling in the xml, it is CaSe SeNsItIvE. I'm using the same code for portability on the new artwork1 in main menu (Super Nintendo Entertainment System) and it works. Consider that this xml is not compatible with the one used in genesis testing wheel for aeon nox

Posted

Could this process be batched or maybe even fitted into a program? It could be called hyperscroll or something

Sent from my SM-A700FD using Tapatalk

 

I'm not a coder. I think it would be possible to use wheel event but it seems to works pretty good as hyperspin layer. In Aeon Nox i have embedd the thing on the background so there are no layers flying around while changing game. The downside is hard disk space: this release is cpu intensive as text is not embedd and csn't be cached as bitmap, so all fonts are basically vectors. Embedding the font in every .swf means you're going to use 50kb per game.

BBB told me that .swf with code can create problems inside hyperspin (especially memory leaking) but no one testing Aeon Nox is reporting serious bug. Latest version remove all open listeners at key event, the xml seems to be dumped by garbage collector.

TBH I think this feature can be directly added into hyperspin, if as3 tweens are a problem as far as i know they can be converted into frames.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...