Jump to content
RealModScene

MaesterRowen

Administrators
  • Content Count

    311
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by MaesterRowen

  1. To do an official translation- please contact me on IRC in #realmodscene and let me know what language you want to do.
  2. More features will come as we continue development. For this release we just wanted to get something out there. If you have to log in to LINK Unity every time, then you are doing something wrong. Your username and apikey are linked to your profile- so if you sign into a different profile, your username and password will change- maybe you signed into a profile and there was no username and apikey set for it yet. In HUD- if you loaded the Freestyle Plugin with Aurora, it will return to aurora from that button even if it says Freestyle Dash. Glad you are enjoying it.
  3. Something to address this will be implemented in next update- we actually had to cut this feature for this release.
  4. We would like to continue to add features to Aurora as we go- however, we also wanted to get a build out there for you all to use; so while its not feature rich yet, we're trying to start some where. We've been working on this project for months- and happy its finally out there.
  5. After saving a 1280x720 image named "background.jpg", "background.png", "background.bmp", or "background.dds" into the root folder of your Aurora installation, that image will be loaded instead of the default background. (Load occurs at boot of Aurora) Background Loading Priority: A ) background.dds B ) background.jpg C ) background.png D ) background.bmp E ) Built-In Aurora Background Enjoy!
  6. MaesterRowen

    GENERIC

    Aurora 0.5b | Aurora 0.5b has been released. Visit phoenix.xboxunity.net for more information.
  7. The Aurora Scripting How-To Guide Aurora and its new Content Management foundation has been designed around the concept of scripting. Using Lua 5.2 as the baseline, Aurora provides user definable functionality to the way your content is sorted and filtered as well as subtitle information provided in the game details. This document will be enhanced and fleshed out as more information is made available; however, its primary purpose at this point is to provide the end-users with minimal documentation so they can start writing their own scripts and configure Aurora to their preference. As mentioned above, there are currently three types of script functions: Sort, Filter and Subtitle. Below you will find function prototypes and some information on building your own script functions. Sort Script Functions In the Aurora Media folder, you will find a sub-folder titled Scripts. This folder contains all of the .lua files that Aurora uses throughout the Content Management foundation and the Game List. For Sort Script Functions specifically, you are going to be referring to the Sort.lua and SortFunctions.lua files. Sort.lua contains the registration function that Aurora calls to add sort methods to the dash and SortFunctions.lua contains all of the core functionality. Sort.lua At the top of the file, you will see the following code: require(Enums) require(SortFunctions) This is including other .lua files into the Aurora Lua Virtual Machine and will make those functions available for code later on in the file. After the require, you will see the following code: -- Set up our global table GameListSorters = {} -- Add a sort method GameListSorters["Title Name"] = GameListSortAlphabetically GameListSorters["Publisher"] = GameListSortPublisher GameListSorters["Developer"] = GameListSortDeveloper GameListSorters["Recent Activity"] = GameListSortRecentActivity GameListSorters["Recently Added"] = GameListSortRecentlyAdded This specific code is generating a table defined as GameListSorters. The key of the table is what you see in [ ]. The value of the table is what you see to the right of the = sign. Let's take the following code: GameListSorters["Title Name"] = GameListSortAlphabetically The key in this line of code is the Title Name. The value in this line of code is the GameListSortAlphabetically. When Aurora loads this table, it will pair the key with the value and create a look up table, allowing the user to select their sort method by the key and have it execute the value (the function). SortFunctions.lua This is one of the files included at the top of the file in Sort.lua. In this file you will see many different functions that define how your content is going to be sorted. For example, the following function is going to alphabetically sort our content by title. function GameListSortAlphabetically(Item1, Item2, Type) -- Check if sort Descending if Type == SortType.Descending then return string.lower(Item1.Name) > string.lower(Item2.Name) end -- Sort Ascending return string.lower(Item1.Name) < string.lower(Item2.Name) end In the above code, you will see the name GameListSortAlphabetically. This is the name of the function and, if you noticed, is the same name we used as the value in the GameListSorters table. When Aurora gets a request to sort content, it will first check to see what sort method the user has specified (the key). Then, for each and every content it finds, it will run this function and compare the two items. The job of this function is to tell Aurora if one piece of Content is to be placed ahead of another piece of Content in the list. To determine this, the function is supplied with three (3) parameters: Item1 // ContentItem 1 Item2 // ContentItem 2 Type // Sort Direction (Ascending or Descending) Essentially; in plain English, the function is asking, "Given that we have a sort direction of type Type, is Item1 ahead of Item2 in the list?" So, let's revisit the code above: function GameListSortAlphabetically(Item1, Item2, Type) -- Check if sort Descending if Type == SortType.Descending then return string.lower(Item1.Name) > string.lower(Item2.Name) end -- Sort Ascending return string.lower(Item1.Name) < string.lower(Item2.Name) end First the function checks if the type is SortType.Ascending or SortType.Descending. The ascending and descending values are defined in the Enums.lua file. (The Enums.lua file should not be modified if you want your scripts to work.) After we have determined the SortType, we can now determine if Item1 is ahead of Item2 in the list. Item1 and Item2 are structures known as Content. This structure and its available properties are listed below under Appendix A. In this particular case, we are sorting alphabetically, so we need to figure out if the Name of the Content is greater than or less than the Name of the other Content depending on the Sort Type. If Item1 is ahead of Item2 in the list, then it is said to be *true*. If it is not ahead, then it is said to be false. To tell Aurora what the function has decided, we return either true or false. Subtitle Script Functions For Subtitle Script Functions, you are going to be referring to the Subtitle.lua and SubtitleFunctions.lua files. Subtitle.lua contains the registration function that Aurora calls to add subtitle methods to the game details and SubtitleFunctions.lua contains all of the core functionality. Subtitle.lua Just as you saw in Sort Functions at the top of the file, you will see the following code: require(Enums) require(SubtitleFunctions) After the require, you will see the following code: -- Set up our global table GameListSubtitles = {} -- Add a subtitle method GameListSubtitles["Publisher"] = GameListSubtitlePublisher GameListSubtitles["Developer"] = GameListSubtitleDeveloper GameListSubtitles["DateAdded"] = GameListSubtitleDateAdded GameListSubtitles["LastPlayed"] = GameListSubtitleLastPlayed GameListSubtitles["MediaID"] = GameListSubtitleMediaId GameListSubtitles["TitleID"] = GameListSubtitleTitleId GameListSubtitles["BaseVersion"] = GameListSubtitleBaseVersion GameListSubtitles["TitleIDMediaID"] = GameListSubtitleTitleMediaId GameListSubtitles["TitleIDMediaIDBaseVersion"] = GameListSubtitleTitleMediaIdBase GameListSubtitles["VirtualPath"] = GameListSubtitleVirtualPath GameListSubtitles["ContentPath"] = GameListSubtitleContentPath GameListSubtitles["DeviceCode"] = GameListSubtitleDeviceCode GameListSubtitles["DiscInfo" ] = GameListSubtitleDiscInfo GameListSubtitles["Genre"] = GameListSubtitleGenre GameListSubtitles["SystemLink"] = GameListSubtitleSystemLink GameListSubtitles["_Blank"] = GameListSubtitleDefault This specific code is generating a table defined as GameListSubtitles. The key of the table is what you see in [ ]. The value of the table is what you see to the right of the = sign. SubtitleFunctions.lua This is one of the files included at the top of the file in Subtitle.lua. In this file you will see many different functions that define how your subtitle is displayed in the game details. For example, the following function is going to display the games TitleID on screen. function GameListSubtitleTitleId(Content) return string.format("Title ID: %08X", Content.TitleId) end When Aurora gets a request to display a subtitle, it will first check to see what subtitle method the user has specified (the key). Then, for the selected content, it will run this function to ultimately generate a display string. The function is provided with a ContentItem struct to allow you to create the subtitle. The structure of the ContentItem can be viewed in Appendix A. To tell Aurora what to display, the function returns a simple pre-formatted string using whatever information you desire from the Content structure. Filter Script Functions For Filter Script Functions, you are going to be referring to the Filter.lua and FilterFunctions.lua files. Filter.lua contains the registration function that Aurora calls to add filter methods to the game details and FilterFunctions.lua contains all of the core functionality. Filter functions are defined some what differently than Sort and Subtitle functions as they can be grouped into sub categories. Filter.lua Just as you saw in Sort and Subtitle Functions at the top of the file, you will see the following code: require("Enums") require("FilterCategories.FilterCategoryGenres") require("FilterCategories.FilterCategoryMisc") require("FilterCategories.FilterCategoryUser") require("FilterFunctions") The primary difference here is that we've added additional files that also reference different filter functions. They are split into multiple files like this strictly for organizational purposes; but, if you wanted could all be under the same file, FilterFunctions.lua. After the require, you will see the following code: -- Set up our global table GameListFilterCategories = {} -- Add a Category GameListFilterCategories["Genres"] = RegisterGenreFilters() GameListFilterCategories["Misc"] = RegisterMiscFilters() GameListFilterCategories["User"] = RegisterUserFilters() GameListFilterCategories["Xbox 360"] = GameListFilterXbox360 GameListFilterCategories["Xbox Live Arcade"] = GameListFilterXBLA GameListFilterCategories["Xbox Classic"] = GameListFilterXboxClassic GameListFilterCategories["Indie"] = GameListFilterIndie GameListFilterCategories["Kinect"] = GameListFilterKinect GameListFilterCategories["Applications"] = GameListFilterApplications GameListFilterCategories["Homebrew"] = GameListFilterHomebrew GameListFilterCategories["Emulators"] = GameListFilterEmulator This specific code is generating a table defined as GameListFilterCategories. The key of the table is what you see in [ ]. The value of the table is what you see to the right of the = sign. If you have a sharp eye, you will notice that some of the values look like: GameListFilterCategories["Genres"] = RegisterGenreFilters() This is because we are defining a sub-category. When the value ends in () we are going to be calling another function that generates a new table. You ultimately will end up with a table within a table, or nested tables. Aurora is expecting pretty specific formatting; so if you decide to add new categories; try to stick to the conventions provided in the base files as they will help get you on the right path to creating your own filters. FilterFunctions.lua This is one of the files included at the top of the file in Filter.lua. In this file you will see many different functions that define how your scripts will filter content. function GameListFilterKinect(Content) -- Return if this game is a kinect game return bit32.btest( Content.Flags, ContentFlag.KinectCompatible ) end When Aurora gets a request to filter content, it does so by executing the user selected filter functions for each ContentItem found in the data base. When multiple filters are selected- they are applied using a bitwise AND operator meaning that if the user selects Xbox 360 AND Xbox Classic then their list will be empty because a game can't both be Xbox 360 and Xbox Classic. However, if the user selects Xbox 360 AND Kinect, then it will show Xbox 360 Kinect games. To tell Aurora what content to display and what content to filter, the function returns true or false. True if the content is to remain in the list and false if the content is to be removed from the list. Conclusion Well we hope that this how-to guide was a good starting point for your scripting adventures. Please feel free to post in the support forums if you have any questions or come across any bugs. If you think you can improve this guide- feel free to assist there as well. Note: In future updates, we have made it a goal to never replace or edit the FilterCategoryUser.lua file. It is recommended that if you want to make custom filters, sorts, or subtitle scripts, you do so in custom files, or have backups of your scripts prior to updating. Thanks! Appendix A - Content Struct struct { int Type; // ContentType [See Enums.lua for possible values] string Root; // Root of the storage device that this content resides. [Hdd1, Usb0, etc.] string VirtualRoot; // Virtual root that this content resides. [ \Xbox360\System\Hdd1, etc ] string Directory; // The directory that the content is in string Executable; // The name of the file for this content [ default.xex, CONTAINERNAME ] bool Enabled; // Flag representing whether or not the content is on a device that is mounted int AssetFlag; // Currently not working int Id; // Id of the content item as generated by the database string Name; // TitleName of the content int TitleId; // TitleId int MediaId; // MediaId int BaseVersion; // BaseVersion int DiscNum; // Current Disc number for this content int DiscsInSet; // Total number of discs for this content string Developer; // Developer name string Publisher; // Publisher name string Description; // Description (Synopsis) text string ReleaseDate; // Release date (not avaialble for all games) int Flags; // The XEX Flags- [See Enums.lua for possible values] int Genre; // Flag code for the genre [See Enums.lua for possible values] string GenreStr; // Localized/Translated string containing the genre of the content double LiveRating; // Rating (out of 5) as displayed on xbox.com int LiveRaters; // Number of raters as displayed on xbox.com bool SystemLink; // Flag denoting whether or not this game is LiNK supported bool Hidden; // Flag denoting if this content has been marked as hidden bool Favorite; // Flag denoting if this content has been marked as favorite int Group; // This is the category of content as determined by the Aurora Content Scanner string ScriptData; // This is the string set during scan path creation struct { int HighPart; int LowPart; int Month; int Day; int Year; int DayOfWeek; int Hour; int Minute; int Second; int Milliseconds; } LastPlayed; // Date-Time structure representing the last time this content was launched struct { int HighPart; int LowPart; int Month; int Day; int Year; int DayOfWeek; int Hour; int Minute; int Second; int Milliseconds; } DateAdded; // Date-Time structure representing the date this content was added } Content;
  8. We apologize for any problems you all are experience- we're addressing issues as fast as we can- the transition for the most part went smoothly with misc bugs that we are ironing out. This new website should be fully compatible with the latest release of Freestyle3 and LiNK. Please keep letting us know if there are any other issues you come across.
  9. LiNK should be working- I would imagine if System Link is grey its because you aren't in a LiNK compatible game, your username or API key aren't set. If you are still having problems- maybe try a cold reboot. If still, you may want to check back in a couple of hours- there may be an issue that is currently in the process of being resolved.
  10. Hello- Unity is intended to work seamlessly with the existing plugin release. While there may initially be plenty of bugs; by the time they are worked out- you shouldn't notice any difference. Please bear with us. Thanks.
  11. Good evening fellow skinners, coders, and enthusiasts, Since TeamFSD isn't actively coding anymore, I wanted to provide everyone with a program we created during the creation of the F3plugin, LiNK and the HUD modifications you use today. This program will essentially take XUI files developed with XuiTool and convert them to XURv8 files that are used by the kernel/dash to show the HUD. Additionally, it'll let you load those XURv8 files and convert them to XUI files that you can then load in XUITool. This is the very same tool we used when creating the stuff you see in HUD now. Please keep in mind... this tool was only developed enough to work for us, and while we think its pretty damn good, its not perfect. Also, I am way too lazy to write a how-to, so I am hoping someone with the smarts can figure it out on their own and then write a tutorial for people everywhere to use. In addition to the program, I am providing the complete source code for the project in hopes that it is expanded, improved and continues to be used whether thats for skinning FSPlugin stuff, or writing your own programs or plugins that modify HUD or the dash in some way. Only thing we ask is that you give us some credit if you do use any of the source for your own projects (thanks!) The screenshot below represents the program in action. This is after I loaded SystemLink.xur (a file from f3plugin). It shows the converted heirarchy and even shows timeline information. It is an amazing piece work and Wondro and I spent weeks reverse engineering the XURv8 format for use with LiNK and ultimately I am glad we are finally sharing it. Lastly, if you do use this program to create custom HUD skins for LiNK, do so at your own risk. Hud has a very small amount of memory available and overloading it with images, scenes and animations, you are likely going to cause instability in most games, crashes, etc. Anyway, thanks to everyone in TeamFSD, Wondro, cOz, Anth0ny, Natelx, and DeadlyD for either information or help in building this program and thanks to the fans who have enjoyed using LiNK and the programs we've built. I look forward to seeing what happens with this. Edit By Gavin_Darkglider: For those having issues with XUI Tool opening the XUI files saved by XUI workshop, and have tried the extension files from XUIWorkshop For XUI Tool, try these https://www.dropbox.com/s/oj7swqzioo4bm9u/XuiToolXamExtensions.rar?dl=0. I was having all sorts of issues, only when opening the exported XUI Files, this fixed that problem, and made them appear propperly in XUI tool. Also, after I compiled the XUI Files back into XUR files, I had to edit the XUR with a Hex editor, as the Degree symbol used in the temperatures was being put in to the file as an unreadable byte, so it stopped the plugin from loading the file. I dont have a quick fix for that, but if you want more info look here: http://www.realmodscene.com/index.php?/topic/3261-xuiworkshop-v1000-released-by-teamfsd-member-maesterrowen/?p=43960 Second edit By Gavin_Darkglider: Found A quick fix, if you open the XUI file in XUI tool, and replace the square box symbol that is wrong with the symbol created by holding alt and on the number pad type 1 6 7 then release alt, it will fix the problem(Do for each Temperature Txt), and no hex editing is required. Dont know why the app messes this up when converting files from xur to xui, maybe maester rowen will look into it. This has been tested by me, and is working. Also as stated in the first edit, if using the extensions packaged with xuiworkshop for XUI tool do not work for opening the XUI files in XUI tool, Use the ones I posted above. They have been tested by me, and I have confirmed they work, and will not cause any unwanted changes to the exported binary file. XuiWorkshop.rar
  12. I think your issue (assuming you have not solved it yet) is that F3 caches your skin settings in Game:DataSkinsSKINNAMEXML folder.... perhaps if you erase those, your XML files will update as expected. For some insight- the reason we cache your XML files (specifically your settings files) is so we have write access from within the Freestyle code base. When they are bundled within an XZP file, we can no longer write to them. Hope this helps.
  13. MaesterRowen

    GENERIC

    RealModScene | Visit www.realmodscene.com to help support our servers.
  14. Thanks for your suggestions- Unfortunately- with F3 and the entire Freestyle base- we didn't design it with translating in mind, originally. The Xbox SDK has a very good way of handling languages across scenes and within the XEX- but to retroactively go through and fit that in is a huge project that we just can't find time to get to. Hopefully we get to it one day.
  15. Hello, Those files are dummy files and don't actually do anything. In the currently released version of our plugin, all of the scenes are hard coded into the .xex file. We have a version in development now where we no longer have to hard code anything; however, because of the very limited memory available in Guide- and the very intricate way everything has to be put together, we do not intend to support skinning of the HUD scenes outside of modifying the images that we provide externally. If you have suggestions on how to make our HUD modifications look better, we will definitely listen to them and consider them as future improvements. To directly answer your question: What is so special about them? HUD uses a .xur format that is not compatible with XUITool (which is why you can't open them in xuitool). Hope this helps!
  16. MaesterRowen

    GENERIC

    Welcome | Welcome to LiNK RSS!
  17. MaesterRowen

    2 bugs

    I don't know if you realize this at all, but the data that you download comes from somewhere. That somewhere happens to be jqe360.com. When you get problems like this in the future, be sure to check the different jqe360.com sites to make sure they are working first. If they don't work, the xbox version won't work either.
  18. It will help us out if you can tell us what game you were using when this happened, what media id was displayed in the HUD and then what it was supposed to display (ie, the actual media id). Thanks.
  19. It will help us out if you can tell us what game you were using when this happened, what media id was displayed in the HUD and then what it was supposed to display (ie, the actual media id). Thanks.
  20. If your reputation is 0, you are not cheating, and it has not regenerated, please private message JQE- and he can get you reactivated. We are actively working on bettering the system, and if there is a problem, especially one as bad as non regenerative reputation, then we will fix it. None of these fixes are going to be an overnight fix, so in the mean time, please be patient. If you feel you were unfairly banned, PM JQE so he can restore your account. Thanks
  21. We are considering many different solutions to this. Here are some ideas and some food for thought: 1) Gain 10 points per day regen 2) Reported = lose 5 points and only reportable by the same person once per day 3) You can't be reported by someone with less than 50 pts 4) If your reputation hits 0, you can't play again until 30, but you wont be reportable until you are 30, (this makes it where you would have to be reported 6 more times to get re-banned/trolled again) Just stuff we're working on, we'll be sure to update everyone as we make hte system better. Thanks for hte feed back.
  22. Reputation is regenerated each day by 10 points and each report in turn, removes 10 points. Also, you can only be reported by the same person once per day. For you to get to 0, you need to have 2+ people report you per day. Whether or not that is rage reporting, or people think you are cheating, we don't know. That being said, we are actively evaluating the reporting system and as we move forward will eventaully find balance.
×
×
  • Create New...