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

dark13

Content Creator
  • Posts

    1,665
  • Joined

  • Last visited

  • Days Won

    11

Posts posted by dark13

  1. On 12/31/2024 at 11:26 PM, AmonUK said:

    I managed to get it to work. But it's brutal. I had to format and reinstall windows 11. Here is the catch though. If you install a fresh Win 11, install Hyperspin, launch Hyperspin without Win 11 having updated to 24H2, Hyperspin will work but will stop working when you do update to 24H2.

    So:

    1: Fresh Install Windows 11.

    2:Make sure you update first to 24H2.

    3: Launch Hyperspin for the first time and it will work.

     

    Now I said it was brutal, well it is, because you have to format your system. 

    The other thing is, I have no idea why doing it this way works. I have no idea why launching Hyperspin for the first time without the 24H2 update, breaks Hyperspin when you update to 24H2. I also have no idea why an existing installation is 50/50 on breaking after you update to a major cumulative update for windows 11.

    There are a lot of people smarter than me so I will leave it to them to figure out.

    I installed w11 24h2 iso downloaded from microsoft website on virtualbox and HyperSpin is working.

    24h2 anyway is a trainwreck, it breaks also other games and apps, not only HyperSpin

    • Upvote 1
    • Super Like 1
  2. 4 hours ago, Creezz67 said:

    What I am saying is that people keep coming back to Hyperspin because even without any improvements it's still better than ALL other frontends ( I have Launchbox setup with over 600 wheels and it's laughably bad in comparison) Like a Ferrari with a Fiat Punto engine (Looks great from the outside, but is as slow as hell)

    Hyperspin with the same systems performs perfectly well and until another frontend does that, Hyperspin will always be my go to.

    Yes, I don't understand why it's not Open Source if he doesn't want to maintain it anymore.

    Major improvements could be made overnight by others in these forums, that's for sure.

    As far as I know BBB said HS uses some commercial flash libraries so it can't actually go open source

    • Like 1
    • Upvote 1
  3. 2 hours ago, Agard said:

    dummy roms need to be done for    ( gtfore04a  )  (  rebound  )  also please dark13   Thanks

    I don't have them in my mame xml, try copy/paste gtfore04.chd and name it gtfore04a.chd, copy/paste another .zip file and rename it rebound.zip :)

    • Super Like 2
  4. The white screeen with exclamation point means Flash run out of memory, Flash has some serious memory leaking problems and can't use all the ram of the system (can't remember if it is limited to 2gb or the classic 32bit 3.8gb). Basically even if the Flash garbage collector runs properly some stuff still hangs in memory. You can trigger the problem using huge .swf or .swf that are not huge but have lots of frames (it is better to stay in the 160-180 frame max range for a fullscreen .swf).

  5. Maintaining an all working games list is impossible. You should try each game every MAME release as there are a truckload of non listed regressions. As example, I'm testing my list on 0.259: "area51" has serious performance issues on my i5 4460 (around 70%), "area51t" works like a charm. "botss" is listed as working but it throws an error when you start the game and the system resets every single time. "botss11" clone seems to work. MAME team does not check every game as 30 days schedule is just too crazy to properly test everything. Moreover if you use non official MAME (es RA MAME core, no nag, arcade64, etc) some games that works on the official version might not works.

    "pongf" seems to have been removed, as far as I remember it was listed as a parent on 0.207

    You seems to be very good with databases, why don't you add tags not used by HS but usable in AS3 skin (story, score, number of players, etc) :P

     

    image.thumb.png.5cbb4b11054be1e63e3d487fbda4feb6.png

    • Super Like 1
  6. On 10/6/2023 at 5:39 PM, floatingyeti said:

    The additional games are mostly clones.  I've been maintaining a custom database for the past 10 months.

    MAME 0.249 ROM Mapping (Clones) project - Graphic & Theme Creation - HyperSpin Forum (hyperspin-fe.com)

    I've had a lot of help identifying and adding clones:

    THEME CREATORS NEEDED ! The road to completion (...almost) - Requests - HyperSpin Forum (hyperspin-fe.com)

    A few model2 games but I've "hidden" the full list as a genre xml because they are not worth having in the main xml at this point.

    I've included 2/4 player clones for many games but would love input if I'm missing anything crucial.

     

    I don't feel my database is "better" or "definitive" it's just a project I maintain for fun. Thank you for sharing your database, I will look through it.

    Well, a database can't be "definitive" as it is always done by choice. As example I don't list console arcades (nes, megadrive,snes, etc) in MAME. I kept only Nintendo VS with its original name (VS super mario bros. -> Super mario bros).

    BTW is it me or some roms does not start because of their name? As example "kollonc", MAME .chd romset has a "kollon" folder with "kollon" and "kollonc" .chd inside it and RL does not seems to recognize it. I fixed the thing adding a "dummy" roms folder to RL, check it (no copyright infringment, they are empty .txt files with .zip or .chd extension).
     

    Dummy roms.zip

    • Super Like 1
  7. Uhm, I'm using a custom xml, it contains 3109 games. I need to update it as some games have changed names.

    As far as I've seen some stuff needs to be removed, as example "39 in 1" (bad mame emulation on mame)

    Does it include games that have better emulation (model2, model3, naomi, etc)?
    4 players games need 2 players clone as they don't have character selection

    Just for comparison here's my xml
    In case I can add roms to my flyers wheelset

    MAME.xml

    • Like 2
    • Super Like 1
  8. 7 hours ago, Jimbo6 said:

    I copied the sxs.dll from my windows/system32 directory and that didnt help. I thought that there was a fix to the hyperspin.exe or something after a win10 patch.  

    This is what I get for upgrading the OS.. lol. 

    I'll give it a try just incase theres something wrong with my sxs.dll. 

    Thanks for helping out, dude. 

    --Jimbo6

    Because the sxs.dll in Windows 10's system32/syswow64 is not compatible with Hyperspin. There is no patch on HS exe, you only need to download the posted dll and put it in the same folder of hyperspin.exe. It's the dll used in windows7, if a dll is included in the same folder of the exe, the exe will use that dll instead of using the one in system32/syswow64. It's an old school trick 😛

    • Super Like 1
  9. On 1/18/2023 at 1:16 AM, braap said:

    Sadly this is why the theme hasn't progressed. Everyone takes what they want and disappears.

    The theme is basically finished, i just need to add some bits of code. The problem are the games' databases. Wheels for most systems are ready too, I did them during the lockdown.

    Moreover I'm working on a tron inspired theme for a member of the forum and it will have a public release BUT it will still needs the databases for infos...
     

     

    • Like 2
    • Super Like 3
  10. png2swf();
    
    function png2swf()
    {
        var folderURI = fl.browseForFolderURL("Select a folder.");
        if (folderURI == null) { return; }
        var folderContents = FLfile.listFolder(folderURI);
    
        var doc = fl.createDocument();
        doc.backgroundColor = '#00FF00';
        
        var imported = 0;
            
        for(var i=0; i< folderContents.length; i++){
            
                        
            var pngURI = folderURI + "/" +folderContents[i];
            if (pngURI.substr(pngURI.length-4) != ".png") continue;
            
            doc.importFile(pngURI);
            
            // get item        
            var bmp_lib = doc.library.items[imported];
            bmp_lib.compressionType = "lossless";        
                    bmp_lib.allowSmoothing = true;
            var bmp_tl = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0];
                     
    // Scale from 1080p to 1024*768 and apply 16:9 ratio correction
                    bmp_tl.width = 1024;
                    bmp_tl.height = 768;
                    bmp_tl.x = 0 ;
                    bmp_tl.y = 0 ;
    
    // set doc size
            doc.width = Math.floor(bmp_tl.width);
            doc.height = Math.floor(bmp_tl.height);    
    // export    
            var swfURI = pngURI.substr(0,pngURI.lastIndexOf(".")+1)+"swf";
            doc.exportSWF(swfURI, true );
            
            // remove previous from timeline
            doc.selectAll();
            doc.deleteSelection();
            
            // increase imported count
            imported++;
        }
        
        doc.close(false);
        
        alert(imported + " files created.");
    }

    Change set doc size for the stage and bmp_tl height and width

    If you use a swf the artwork must be centered, aligned at the middle of the image on y=1 and x=1, so something like this if the image is 200x200
     

                    bmp_tl.x = 200/2-200 ;
                    bmp_tl.y = 200/2-200 ;

     

  11. Is it a problem in HS? HS completely ignores stage resolution of the swf,  it simply considered the first and last non empty pixels on y and x for positioning. If you want to use boxarts as wheel you need to center the position of the image,  if i remember correctly if you have a 200x200 image position must be -100 on y and x.

    I'll check if I can modify the script later,  cheers.

  12. Yeah,  I released a template for videos.  You need to use after effect cs6, specifically cs6 as newr version don't include flv encoder and you need to render with alpha channel. In theory h264 can render a video with alpha channel but the thing was not working here.

  13. It's mainly my fault but this project is a fucking mess.

    I had the idea to use as3 in .swf to add functionality to HS and lots of people started doing as3 themes and using Aeon nox resources in their themes. That's a good thing, I gave .fla and .psd files to whoever asked me for them but then everyone started supporting selfmade .xmls without uploading the .xmls files here or even discussing about it.
    I mean, every fucking as3 theme can share the same fucking .xml, there's no reason why we can't have "official" .xmls.
    Honestly I hate working with office and database and I' very slow with that kind of work, so before supporting and making resources for obscure systems I think there should be "official" xmls, then everyone can add or remove games from them.

    • Like 1
  14. 7 hours ago, fifou said:

    Hey Dear Community

    Little pause on games DB to continue on my theme settings :) 

    Any idea were can I remove the blue logo over my logo please ?

    MainMenu.thumb.png.69c6118252000e00fb26aec2b7c2ddf9.png

    It should be Artwork3.

    BTW but has someone prepared the files for HyperText? This thing still needs a bit of work but if someone made the files with info lots of systems would be released in something like 2 weeks.

     

  15. 17 minutes ago, md_max said:

    Showing the number of games pre-recorded in a txt file using ahk. AHK counts image files from the Wheel folder. Why Wheel? Because this is just one file format, usually their number is equal to games. And count all sorts of 7z, zip, cue, nes... it is difficult. It is easier to count the number of Wheel.
    I'm not a programmer, but what I would like to do is for Flash to read txt and output the result, so as not to use EDS and HyperMarquee.
    Sorry for my english - google translator.

    Number_of_games.ahk 20.74 kB · 1 download

    This is the AS3 code used in Aeon Nox, you have to remove the part that load the background, mykeydown listener and the part that change the color of the text if you don't want to load the configuration files for it. The code loads the databases xmls and count the games listed in them
     

    import fl.transitions.Tween;
    import fl.transitions.easing.*;
    import flash.events.KeyboardEvent;
    import flash.ui.Keyboard;
    import flash.events.Event;
    
    var database:XML
    var game_count:Number;
    var loaderdatabase_xml:URLLoader = new URLLoader();
    var SysBK:BitmapData;
    var CustBK:BitmapData;
    var GuiBK:BitmapData;
    var BgTween:Tween;
    var config_xml:URLLoader = new URLLoader();
    var configXML:XML;
    var animation:Number;
    var animation_frames:Number;
    var xml_config:XML;
    var myFileName:String;
    var myFileNameArray:Array = new Array();
    var myFileNameArray2:Array = new Array()
    var myFileNameArray3:Array = new Array();
    var myFileNameArray4:Array = new Array();
    var num:Number;
    var mypath:String;
    var mypath3:String;
    var RomName:String;
    var HSpath:String;
    var SystemName:String;
    var thisSWF:String;
    var redOffset:Number;
    var greenOffset:Number;
    var blueOffset:Number;
    var redMultiplier:Number;
    var greenMultiplier:Number;
    var blueMultiplier:Number;
    var info_button:Number;
    var DialogTween:Tween;
    var BG_fade_Duration:Number;
    var text_color3;
    var text_size:Number;
    var text_x:Number;
    var text_y:Number;
    var text_translation:String;
    var system_desc:String;
    
    myFileName = this.loaderInfo.url;
    myFileNameArray = myFileName.split(String.fromCharCode(92));
    num = myFileNameArray.length;
    
    thisSWF = myFileNameArray[num-1] ;
    
    myFileNameArray2 = thisSWF.split(".swf");;
    
    RomName = myFileNameArray2[0] ;
    
    mypath = myFileName.split(String.fromCharCode(92)).join("/");
    myFileNameArray3 = mypath.split("/Media/");
    
    HSpath = myFileNameArray3[0] ;
    
    mypath3 = myFileNameArray3[1]
    
    myFileNameArray4 = mypath3.split("/Images/");
    
    SystemName = myFileNameArray4[0]
    
    var SysBkLoader:Loader = new Loader();
    
    SysBkLoader.load(new URLRequest(HSpath + "/dark13/Aeon Nox/Backgrounds/" + SystemName + "/" + RomName + ".png"));
    SysBkLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, SysBkLoaded, false, 0, true); 
    SysBkLoader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, CustBkLoaded, false, 0, true);   
    
    
    function SysBkLoaded (event:Event):void
    {   SysBkLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, SysBkLoaded);
    	SysBkLoader.contentLoaderInfo.removeEventListener( IOErrorEvent.IO_ERROR, CustBkLoaded);   
       
    	SysBK = Bitmap(LoaderInfo(event.target).content).bitmapData;
        
    	var SysBKimg = new Bitmap(SysBK);
    	SysBKimg.smoothing = true
    	SysBKimg.x = 0;
    	SysBKimg.y = 0;
        SysBKimg.width = 1024;
    	SysBKimg.height = 768;
    	SysBKimg.alpha = 0;
    	
    addChildAt(SysBKimg, 0);
    
    	BgTween = new Tween(SysBKimg, "alpha", Strong.easeOut, 0, 1, BG_fade_Duration, false);
    }
    
    function CustBkLoaded (event:Event):void
    {   
    	SysBkLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, SysBkLoaded);
    	SysBkLoader.contentLoaderInfo.removeEventListener( IOErrorEvent.IO_ERROR, CustBkLoaded);   
    	var CustBkLoader:Loader = new Loader();
    
    CustBkLoader.load(new URLRequest(HSpath + "/dark13/Aeon Nox/Backgrounds/" + SystemName + "/Default.png"));
    CustBkLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, SysBkLoaded, false, 0, true); 
    
    
    	function CustBkLoaded2 (event:Event):void    
    {	CustBkLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, CustBkLoaded2);
    	
    	CustBK = Bitmap(LoaderInfo(event.target).content).bitmapData;
        
    	var CustBKimg = new Bitmap(CustBK);
    	CustBKimg.smoothing = true
    	CustBKimg.x = 0;
    	CustBKimg.y = 0;
    	CustBKimg.alpha = 0
    	CustBKimg.width = 1024;
    	CustBKimg.height = 768;
    	CustBKimg.alpha = 0;
    	
    	
    	
    addChildAt(CustBKimg, 0);
    BgTween = new Tween(CustBKimg, "alpha", Strong.easeOut, 0, 1, BG_fade_Duration, false);
    	
    }
    }
    
    function onLoadedConfig(e:Event):void
    {	
    	config_xml.removeEventListener(Event.COMPLETE, onLoadedConfig);
    	configXML = new XML(e.target.data);
    	animation = configXML.animation;
    	animation_frames = configXML.animation_frames;
    	redOffset = configXML.gui_colorOffset_red;
        greenOffset = configXML.gui_colorOffset_green;
        blueOffset = configXML.gui_colorOffset_blue;
        redMultiplier = configXML.gui_colorMultiplier_red;
        greenMultiplier = configXML.gui_colorMultiplier_green;
        blueMultiplier = configXML.gui_colorMultiplier_blue;
    	info_button = configXML.info_on_keypress;
    	BG_fade_Duration = configXML.BG_fade_Duration ;
    	text_color3 = configXML.text_color3 ;
    	text_size = configXML.text_size;
    	text_x = configXML.text_x;
    	text_y = configXML.text_y;
    	text_translation = configXML.text_translation
    	system_desc = configXML.system_desc;
    	
    loaderdatabase_xml.load(new URLRequest(HSpath + "/Databases/" + SystemName + "/" + SystemName + ".xml"));
    loaderdatabase_xml.addEventListener(Event.COMPLETE, onLoaded2);
    	
    function onLoaded2(e:Event):void {
    	
       loaderdatabase_xml.close();
       loaderdatabase_xml.removeEventListener(Event.COMPLETE, onLoaded2);
    	
       
        database = new XML(e.target.data);
    	game_count = database.game.length();
    	/*
    	trace(game_count);
    	trace(database.game.(@name=="3 Ninjas Kick Back (USA)").childIndex());*/
    	
    	var myFont = new Font2();
        var myFormat:TextFormat = new TextFormat();
        //myFormat.font = font_type;
    	myFormat.font = myFont.fontName;
        myFormat.size = text_size;
        myFormat.align = TextFormatAlign.JUSTIFY ;
    	
       var upper_info:TextField = new TextField();
       upper_info.defaultTextFormat = myFormat;
       upper_info.textColor = text_color3 ; 
       upper_info.embedFonts = true;
       upper_info.border = false;
       upper_info.wordWrap = false;
       upper_info.multiline = false;
       upper_info.scaleX = 0.75;
       upper_info.scaleY = 1;
       upper_info.autoSize = TextFieldAutoSize.CENTER ;
       upper_info.antiAliasType = AntiAliasType.ADVANCED;
       upper_info.cacheAsBitmap = true;
       upper_info.text = system_desc + " (" + database.game.(@name==RomName).childIndex() + "/" + game_count + " " + text_translation + ")" ;
       var h = upper_info.width;
       upper_info.x = text_x - (h/2);
       upper_info.y = text_y;
       addChild(upper_info);
    	
    	}	
    	
    	var floor1:floor = new floor();
    
    var colorTransform:ColorTransform = floor1.transform.colorTransform;
    colorTransform.redOffset = redOffset;
    colorTransform.greenOffset = greenOffset;
    colorTransform.blueOffset = blueOffset;
    colorTransform.redMultiplier = redMultiplier;
    colorTransform.greenMultiplier = greenMultiplier;
    colorTransform.blueMultiplier = blueMultiplier;
    floor1.transform.colorTransform = colorTransform; 
    floor1.smoothing = true ;
    
    addChildAt(floor1, 1);
    
    if(animation==1){
    DialogTween = new Tween(dialog, "y", Strong.easeOut, 1024, 29, animation_frames, false);
    
    	
    }
    
    
    if(animation==2){
    
    DialogTween = new Tween(dialog, "y", Strong.easeOut, 1024, 1024, animation_frames, false);
    	
    
    }
    }
    
    var dialog:Window = new Window;
    addChildAt(dialog, 0);
    
    dialog.x=0;
    dialog.y=29;
    
    stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown);
    
    function myKeyDown(e:KeyboardEvent):void {
    if(e.keyCode == info_button) {    
    	
    	if (dialog.y==29) {
    	DialogTween = new Tween(dialog, "y", Strong.easeOut, 29, 1024, animation_frames, false);
    	 } 
    	 
    	 if (dialog.y==1024) {{
    	DialogTween = new Tween(dialog, "y", Strong.easeOut, 1024, 29, animation_frames, false);
    	 }	
     }
    }
    }
    config_xml.load(new URLRequest(HSpath + "/dark13/Aeon Nox/Config/" + SystemName + ".xml"));
    config_xml.addEventListener(Event.COMPLETE, onLoadedConfig);


     

    • Upvote 1
×
×
  • Create New...