Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - farique

Pages: [1] 2
1
Themes / Re: Syskeuomorphic theme.
« on: August 24, 2019, 10:51:22 AM »
@Neosys

I cannot test it right now but just to throw something out.
The problem seems to be related to the text box that I used as an array (the _scrlMsg[]), also it spits out the "f" variable and complain about wrong indexes. Did you edited the code somehow? Removed any of the _scrlMsg[] or messed with the FOR loops?

I am using the same AM version but on a Mac, should not be a problem.

Any more information you can give me?

2
Themes / Re: Syskeuomorphic theme.
« on: August 22, 2019, 04:48:03 PM »
Yaron2019, the scrolling marquise is awesome on your layout. That led sign design was asking to be scrolled!

Enkak, if I remember correctly the story info text box on AM is a little finicky, I had some problems integrating it on my displays.
I implemented a manual scrolling using a thing called
Code: [Select]
<text_box>.first_line_hintbut it refused to scroll if all of several variables weren't the way it wanted.
Should work with something similar to the horizontal implementation, varying the .first_line_hint instead of clipping a string.
However I think one of the problems I had was that I couldn't find a way to reliably mesure the text size. Manually you just see when the text come to the end but it can be a problem on an automated fashion.
I even think I tried to automate it at the time but it certainly was before I did the horizontal scrolling.

Definitely something for the TODO list.

3
Themes / Re: Syskeuomorphic theme.
« on: August 21, 2019, 01:53:32 PM »
I took my time, hum!?

I frequently tell my younger nerd friends how they missed the paradigm breaking that each new generation of computers brought (sound, colors, sprites, samples, etc), but yeh, the Amiga was nothing less than magic. I went straight from the MSX 1 to the Amiga and that was brutal. The first thing I saw was Battle Squadron and that game over tune give me the chills to this day. I love(d) the Amiga so much I spent a whole year after the Commodore demise without a computer at home waiting for a miracle. Windows 95 came instead (could have been worse  :P )

Apart from the odd routine to help my Basic programs I never really programmed in assembly but I always had an interest in it and I'm leisurely (re)studying MSX assembly, could be the case. I also think that thightness has something to do with the '80s Basic style or the fact that that is the first and only code I did in Squirrel, could be just fear  ;D

Finally, to compensate the delay I did one better than commenting the scroll code, I did a test Display to toy with it. I wanted to (re)understand it better (hahahah no joking, its been a while) and streamline it if possible. The code is a little bit different from the the one in my theme, I think it is better.
I got carried away and it is heavily commented, to the point of repetition, so be bear with me. And if the comments are making the whole thing worse, just bring your doubts.

Cheers.

4
Themes / Re: Syskeuomorphic theme.
« on: August 13, 2019, 08:55:43 AM »
Hi, Yaron2019, thanks for the nice little lies ;D

The current systems in the theme are the ones a had back in the day: Odyssey², ZX81, TRS Color, MSX, Amiga; the recent ones: Vectrex and Virtual Boy; and the ones I had a lot of contact with: Atari 2600 and Arcade. When I was satisfied with them I gave it a pause.
But I very much intend to continue expanding it. I particularly want to implement old videogames and consoles I had little to no contact with but always thought as having a lot of personality like the Intellivision, Coleco, ZX Spectrum, Commodore 64, TRS 80, etc.
By the time Nintendo and Sega came I was already a little too old and a little too much into computers to have an emotional attachment and a feeling for their essence but they are also surely coming.

About the scrolling text, if you want I can post a commented version of the scrolling code (I remember it was a bit confusing, indeed). I am a very busy right now and need to take a look there to remember the details. Right now I can say the text comes from  the fe.game_info() function: fe.game_info(Info.Name), fe.game_info(Info.Category), etc.
They are put on a variable, measured and if are bigger than the box they are supposed to fit, an attached boolean is triggered to tell the update_realtime function to do the scrolling.

Cheers

5
Themes / Re: Syskeuomorphic theme.
« on: August 09, 2019, 11:55:46 AM »
Hahahahahahahahaha
"But what di hell is that national geographic yellow rectangle for the snap videos?! "
You are completely right, sir, and I'm not even kidding.

Let me explain how we came to this point:
Initially I only had what is now the Arcade display, used by all emulators. The "National Geographic" (now I can't unsee it ¬¬) theme is actually an skeuomorphic representation of my girlfriend's living room (beige wood panels and yellow details, like picture frames) so AM could blend in the environment.
When I had the idea to make the individual displays on the style of the other systems I "naturally" tried to adapt that one layout to the constrains of each system, to sort of make system-appropriate versions of it, to keep an unity across the layouts.
The systems I care about most are the computers so I tried to capture their sort if text x graphic nature. I was more worried about the feeling than the technical accuracy, that is why there is this kind of unnatural separation on the screen and the ever present big, non-conforming, non-ratio-appropriate, taking-half-the-screen yellow-ish frame.

Well, having told my story I think it is long overdue for a revision (my girlfriend and I broke up anyway and I am moving away from the yellow-beige paradigm) with more info, customisation and better use of space.

Cheers.

6
Themes / Syskeuomorphic theme.
« on: July 05, 2019, 02:38:49 PM »
I've already said here that long gone are the times when, if you wanted something suave and beautiful, you had to build your own theme.
Now you just go out and grab one.

So, when I moved and my 4x3 arcade cabinet couldn't come with me, I decided to take a different approach for the 16x9 living room TV.

I've always loved the unique look and feel of the myriad 8 and 16 bit systems of olden. Their colors, characters, shapes, sounds... How music or smells remind me of specific systems at specific times of my life.

So, Syskeuomorphic was born.
Syskeuomorphic is a simple Attract Mode layout that intends to mimic the look and feel of the classical videogames and computer systems displays.
It is simple and text heavy on propose and design but has some nice features like alternate displays (a Vectrex one without overlays and an anaglyph Virtual Boy) that launch the emulators with these settings.

https://youtu.be/qVWvaFZ74c8

For now it has the systems I had or heavily played with:
ZX81, Atari 2600, Odyssey², Vectrex, TRS Color 2, MSX, Amiga, Virtual Boy and Arcade.
But it is relatively simple to add new ones.

Get it here:
https://github.com/farique1/Syskeuomorphic
Some instructions are there as well.

It was never meant to be distributed so it is not the most plug and play thing ever, but if you have any difficulty just ask me.

As a side note, even if almost all of the fonts for these systems already exist, their licenses are a bit restrictive (I couldn't distribute some or change another, a necessity on system with inverted lower cases like the ZX81 or the TRS Color) so I developed a system to convert old bitmap font dumps to vector fonts. It can help someone here on similar endeavours.
Here:
https://github.com/farique1/Chartotype


7
Themes / Re: Ambience HD theme [WIP]
« on: June 04, 2019, 02:38:35 PM »
MAN, that was beautiful!

Still remember the olden days, being thankful something like MaLA existed, just to be able to create some nice theme for myself that was't a complete mess of loud incongruent sound, shapes and colors all shouting at my face.

Now everywhere I turn there is a gorgeous theme waiting.

Congratulation.

8
General / AM library managing tools source code released.
« on: May 22, 2019, 01:39:47 PM »
Hi.

Some time ago I shared some programs I've written to help manage my AM library (roms, assets, info). They were very focused on my needs so maybe a little tight on other setups.

Well, I just released their source code, so if anyone is interested here they are in all their AutoIt glory:

https://github.com/farique1/attract-mode-list-statistics
Show statistics about Attract Mode rom information and associated files

https://github.com/farique1/consolidate-data
Display and  standardise Attract Mode rom information across all systems.

https://github.com/farique1/scrape-history-overviews
Scan history.dat and export game information on the Attract Mode overview format

https://github.com/farique1/overviewnizer
Convert text to Attract Mode overview format and vice-versa

They are not commented (they were never intended to see the outside world) so any doubt you have you can ask me and IF I REMEMBER anything about them I might try to help :)

Cheers.

9
Hi.
On my layout I need to get the filters names as strings to work with them. So I am using fe.filters (Magic Tokens do not pass as a variable as far as I know). So far so good.

The problem is: when I move from a display to another (with different emulators, lists and filters) that are using the same layout, the contents of the fe.filters array do not update, it keeps using the filter information of the previous display. If I move to a display using a different layout and back or I use the toggle layout key (refreshing it), the array is filled correctly.

Here is a little layout that shows this happening:

Code: [Select]
function transition_callback( ttype, var, ttime )
{
switch ( ttype )
{
case Transition.FromOldSelection:
case Transition.StartLayout:
case Transition.ToNewList:
print ( "\n"+fe.filters.len()+"\n" )
for (local f=0; f < fe.filters.len(); f++) {
print ( fe.filters[f].name+"\n" )
}
print ( fe.filters[fe.list.filter_index].size+"\n" )
break
}
return false
}
fe.add_transition_callback( "transition_callback" )

And the console output:

Code: [Select]
*** Initializing display: 'Atari 2600'
 - Loaded master romlist 'Atari 2600' in 47 ms (539 entries kept, 0 discarded)
 - Constructed 6 filters in 0 ms (3234 comparisons)

6
All
Favourites
Homebrew
Commercial
Prototype
Adult
539

*** Initializing display: 'Odyssey2'
 - Loaded master romlist 'Odyssey2' in 6 ms (121 entries kept, 0 discarded)
 - Constructed 4 filters in 0 ms (484 comparisons)

6
All
Favourites
Homebrew
Commercial
Prototype
Adult
539

This console output is the result of opening AM on the Atari 2600 display and moving to the Odyssey2 display (both using the same layout). As you can see, AM fills fe.filters with the correct Atari 2600 information but when I move to the Odyssey2 display it finds the correct filters and entries but do not update the fe.filters array.

What am I missing?
Thanks.

10
Scripting / Re: first_line_hint not working on 2.4.x
« on: September 11, 2018, 12:21:26 PM »
AND, to wrap up the monologue (and for future reference):

Got it working by using a variable instead of altering first_line_hint directly.
Like this:

Code: [Select]
local _overview = fe.add_text( "[Overview]",0,0,600,1000)
_overview.charsize = 40

local line = 0

print (line+" "+_overview.first_line_hint+"\n")

function update_realtime( ttime )
{
local is_PovYposK = fe.get_input_state ("W")
if (is_PovYposK) {
line += 1
_overview.first_line_hint = line
print (line+" "+_overview.first_line_hint+"\n")
}

local is_PovYnegK = fe.get_input_state ("S")
if (is_PovYnegK) {
line += -1
_overview.first_line_hint = line
print (line+" "+_overview.first_line_hint+"\n")
}
}
fe.add_ticks_callback( this, "update_realtime" )

There is still the problem of aligning the line variable with the first_line_hint position (you can see what a mean on the console output) but I can live with it for now.

11
Scripting / Re: first_line_hint not working on 2.4.x ?
« on: September 11, 2018, 10:41:31 AM »
Ok, narrowed it down to .charsize

If I set a .charsize to the [Overview] text box ( _overview.charsize = 20 for instance ), first_line_hint stops working. Every time I dynamically change it, it goes to 0.
If I don't set a character size the font becomes huge but first_line_hint works.

This simple layout demonstrates it. Use W and S to scroll the overview with and without the second line commented.

I'm using Windows 10 64, AM 2.4.1

Code: [Select]
local _overview = fe.add_text( "[Overview]",0,0,300,600)
_overview.charsize = 20

print (_overview.charsize+"\n")

function update_realtime( ttime )
{
local is_PovYposK = fe.get_input_state ("W")
if (is_PovYposK) {
print (_overview.first_line_hint+"\n")
_overview.first_line_hint++
}

local is_PovYnegK = fe.get_input_state ("S")
if (is_PovYnegK) {
print (_overview.first_line_hint+"\n")
_overview.first_line_hint--
}
}
fe.add_ticks_callback( this, "update_realtime" )

Anyone?

12
Scripting / first_line_hint working differently on 2.4.x
« on: September 04, 2018, 11:54:04 AM »
Hi, guys.

Is it just me or does first_line_hint stopped working on [Overview] texts on Attract Mode 2.4.x?

The same script works on scrolling the text up and down on 2.3 but not on 2.4.

Thanks.

13
First and foremost, thanks for sharing your work with the community.

I had to download the zip to check which operating system(s) it is for. It would be nice if you'd add that to your announcement.
Any chance of MacOS and Linux versions, or the source code so that others may try to compile them?

You are right, Favdeacon, my bad on specifying the supported system. Fixed.

As for the other OSs. I have programmed it on Autoit, a very Windows integrated script language, so I think a direct conversion will not be possible one my part for now.
I can send the source (messy, amateurish, badly commented) if you, or someone else, want to take a look.

14
Thank you, keilmillerjr and raygun for the ideas. If I ever decide to publish my frontend I will sure adopt one of these approaches.

I already have 9 emulators with 2 alternates using a single, very adaptive, layout. Although there are some advantages to the keilmillerjr method, the apps I made to manage my setup are very dependent on the romlists and a duplicate emulator would complicate things a bit so I'll stick to the file approach for now. Will look into the ultrastick method, tho.

And I look forward to developments on your idea, raygun!

ps. This is my layout. The screens might seems similar but everything changes from one to another, from the font to the spacing and the way they display the overviews, for instance. (the two screens on the right are the alternate VB and Vectrex)

15
That is actually a good idea, keilmillerjr!

Would, maybe, be a little overkill on my current layout/support apps setup but surely deserves a thought.

Still curious about passing arguments, tho. Seems to be an useful feature.

Pages: [1] 2