Jump to content


App Developer
  • Content Count

  • Joined

  • Last visited

Community Reputation

73 Excellent

About bleasby

  • Rank
    Elite Member
  • Birthday 07/02/1981

Profile Information

  • Gender
    Not Telling


  • Location
    Berlin, Germany

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Next RL version (release within this week most probably) will allow you to choose using hi2txt instead of HiToText to acquire high scores on pause and Rom mapping menus. You will just need to change the HiToText path to point to the file that you want to use. Sent from my XT1068 using Tapatalk
  2. I have no idea what is the command line that HS uses and I believe neither djvj and brolly would know also. So, I don't think posting in the RocketLauncher will bring you with any new info, but you could try anyway. This is for sure a question to BBB to answer. Maybe Circo or other user could help to reach him about that. By the way greatstone, nice job as usual. I still have pending taking a look about replacing the HitoText version used by RocketLauncher, but it seams that I will have to take a look at it as soon as I can. Thks
  3. Maybe I could add support for it on HyperPause as soon as I have the time to look at it in more detail. One question although in order to make my life simpler: Do your program trow the same formated cmd output as hitotext? Something like this? RANK|SCORE|NAME 1|50000|NIN 2|45000|SIN 3|40000|HAC 4|35000|MTI 5|30000|ESH 6|25000|CBX If it does it would be pretty easy to switch between hi2text and hitotext to read the high scores on HyperPause. The same for whatever other program that uses that kind of info. Thks for your contribution!!!
  4. Yes, perfect! Yeah, emulators that require fixedResMode need additional care. Try to get start by answering the questions that I made above, and posting the answers so I could have some info to try to help you out. The beginning work must be faced as a research project. You need to have clearly set if the emu resize its resolution, if there are human readable configuration files, if the module already have the needed options on it,... Just after knowing all about that, you could decide which method to apply and could starting messing with the module code.
  5. heheh, no problem man. It is nice to receive a thks word sometimes. It is the only payment that I receive from doing that, but it is always good to hear. About your bezel adventures, just try to follow these steps always: 1) Check if the module is able to change between fullscreen and windowed mode. If not, it is necessary to add support for that as the first step. 2) Test if the emulator re-sizes its resolution on screen drag. 2.1) If yes, everything is absurdly simple. You probably only need to add the normal bezel calls and voilà. Maybe some extras commands for hiding window components are required, they are explained here: http://www.hyperspin-fe.com/forum/showthread.php?31302-Adding-bezel-support-A-step-by-step-Walkthrough 2.2) If not, you need to find out if you are able to set the resolution of the emulator before running the game in any config file. 2.2.1) If you can, create a module setting for doing it, and them use a similar code to the one that we used on the daphne module. 2.2.2) If you can't or if the emulator has no visible config file or windows register place to set a resolution, check if the emulator supports at least some restrict set of different resolutions. On this case, most probably you are going to need to use the bezel fixResMode which requires some more notes and emulator knowledge to be added to the module. By the way, if you want, maybe it is better to post any attempts to add bezel support on this thread, as it is the subject of it anyway: http://www.hyperspin-fe.com/forum/showthread.php?31302-Adding-bezel-support-A-step-by-step-Walkthrough
  6. First of all, nicely done. You did a nice job, with some extra guidance for sure. That is one more example of a good team work. It is always more fun to not do such things alone... Now, you should create a post on the daphne and daphne singe threads of the modules forum to suggest these changes to the official module. That way we will have things more organized, and one of we guys involved on the official modules could add the changes to everybody distribution. It is preferable also to suggest these changes on the new hyperlaunch forum because we will start to move any development discussion over there to get things more organized and less tied to a Hyperspin only setup. If you want to tackle adding bezel support to other systems, just create a new thread like this one and we could keep doing these walkthoughts until we have the bezel support defined for new modules. Hopefully, in no time you and any other user will not need any help on adding that stuff, which will be for sure welcome to free some of the burden that me, djvj and brolly carries. That is a limitation of the way the emulator works. Nothing we can do about it. As we can only set the resolution when the emulator launches, we cannot change its screen aspect while changing between different bezels on the same game session. The bezel change keys were created system based because of this, among other reasons. So you just need to set to not use your global_value on the system that you cannot change between bezels while in a game session. Maybe add a note to the proposed module changes stating that is recomended to not use a bezel change key while using this module is a good idea to any new user that does not know about it. To change the bezel key just open HLHQ, select the daphne system, go to the bezel tab, and change the bezel change keys over there to nothing or to use some other key that you don't use anywhere else.
  7. Ok, Seing your module the problem is more clear now. The Bezel Start line must be always after the fullscreen ini read, and always before the fullscreen code, so you should place it before the bellow line for example: BezelStart() fullscreen := If fullscreen = "true" ? "-fullscreen" : "" That way, the bezel start function will force the windowed mode if bezel is enabled. Right, you are going to need some code for that. What do you want to do is to define the screenWidth and screenHeight variables for fitting the bezel screen area, if bezel is enabled. You want also to force the ignore aspect ratio on that case, and the best way to do it is to add it to the parameters if there is a bezel. So you are going to need to change these lines: screenWidth := "-x " . screenWidth screenHeight := "-y " . screenHeight to something like that: if bezelPath ; this variable is only filled if bezel is enabled and a valid bezel image is found { params:= params . " -ignore_aspect_ratio" screenWidth := "-x " . Round(bezelScreenWidth) ;bezelScreenWidth variable is defined on the BezelStart function and it gives the desired width that your game screen should have while using this bezel screenHeight := "-y " . Round(bezelScreenHeight) ;idem above } else { screenWidth := "-x " . screenWidth screenHeight := "-y " . screenHeight } Don't add the bezelEnable variable on the module. Just remove that line. This option is handled by hyperlaunch directly. Try to see if you get somewhere with my suggestions. If you have any doubts, just write it here, and we will walkthrough them untill we have a perfectly good bezel support implemented. As I said before, unfortunetly I cannot test anything right now, but it seams that you are taking the correct path on most of the things, and also this could serve to others that wants to add bezel support on the correct way to any other module.
  8. Ok, this means that the module does set fullscreen mode, but does not set the emulator to run in windowed mode. This must be changed for a official bezel support. This means that the fixResMode should be used, except if there is some emulator config file were we could set the reolution prior to the emu launch. Do you know if there is such config option on some file on the daphne emulator folder? And if it exists, it works with any 4:3 resolution that you place over there? That is the point. Things will work for others as long as they have the same resolution and files that you have by the way things are right now. If things change, the bezel will not work. I will need to take a more careful look in order to add the official support for that. It is not crappy at all. If it works for you it is perfect. Just need to be carefull to not release this as it will not work to everybody and people will satrt complaining. By the way, could you share your bezel creatios with me? I would be very glad to test things using your bezels.
  9. Nice Ron. Just a few tips so you know a little bit more about the bezel things. You didn't need to disable fullscreen. If bezel is enabled, and the module supports it, the bezel code will always force the windowed mode. This will always work as long as the module has the option to switch between fullscreen and windowed mode. Making this the first requirement to an offical module that should support bezels. One question, did you tested if launching a game on daphne or singe, if you can resize the game window dragging its border and the game resizes its resolution to fit the window? If the answer is yes, you already have a perfectly compatible bezel implementation on your modified module and adding the changes to the official module will not be difficult. If the answer is no, them some additional work must be done to assure that the module will work on any user computer and under any resolution. Unfortunetly I cannot take a look at the modules right now, but as soon as I can I will add the bezel support for the official modules. Nicely done you two. Just remenber that if you want the changes to be applied to the official modules, you need to have the fullscreen option on the module, and to test if the screen resizes (that confirms that the bezel normal mode will work nicely).
  10. If you are using hyperlaunch3, this info is completly outdated and not needed with the current mame module.
  11. This is easilly done if you do a autohotkeyscript that when you start hyperpin it press the button to change tables by a random time.
  12. This code was made with AutoHotkey_L, however this do not mean that will not work with the basic version, but it was not tested yet, so if you want to see it working properly, install AHK_L in the computer. I had a lot of free time in the last three days, so you will see a lot of code here. The code includes: 1.Fplaunch pause menu prototype: All shapes are dawn with GDI plus and are fully customizable in colors, sizes, menu contents,... 2.HiScore presentation with full transparency and scrolling text above the playfield 3.Sound Control Menu to adjusted windows master sound (in theory it is compatible with all windows versions, however I only tested in Windows 7) Pause menu proof of concept, sound control and hiscore Blur and anybody else reponsible for the fplaunch, if you need any help, and if I have time to do it, I am at your disposal.
  13. God news: I found a solution to Hiscore text in visual pinball like in future pinball. Now the full history: I wanted to have an additional option in the fplaunch menu to adjust my pinball volume level so I started to play with autohotkey and at the same time I started to make a prototype of the fplaunch menu completely draw as GDI+ shapes. In the middle of all that I finally found a solution to have the Hiscore written above the playfield with transparency using the same structure of the code that I posted a few posts before. When we draw the bitmap on the screen using Gdip_DrawImage we can add a matrix transformation of the colors on the bitmap. Making the calculus I was finally able to find a color matrix transformation that maintain all colors unchanged, except for the alpha level of one specific color, the full write. Using that I was finally able to written the bitmap of the Hiscore contents in the screen with real transparency. The only limitation is that the Hiscore text cannot have pure write text (RGB ffffff), but we can use a very near approximation (feffff). The code for doing it, additionally with the code for adding a new option for volume control in the pause screen and the code for a fully customizable shape written pause menu are in post bellow. I just realized that I did not had the minimum five posts count to add a link to the forum.
  14. The transparency problem happens because bitmaps do not support natively transparency information. If I am able to use a png, this would be solved. However I do not know if I would have to rewrite the Gdip_BitmapFromScreen or if there is a easier way of doing it. Rewriting the Gdip_BitmapFromScreen is a little of my league. :-) We have to ask somebody from the autohotkey forum if it is possible to put the transparency on the rotated bitmap by some other way. My idea with the rectangles was exactly to draw dynamicaly the menus, so we could put animations at buttom presses, and etc. If you need help with that, it is just ask. Whenever I have a free time, I love to play with some scripts. Sorry, but I never tried ahk_L.
  15. I did a first version of what could be the HiScore script with the rotated text. To run the example, just put the ahk in the same folder of the GDIP.ahk, or adjust the path in the #include. #include gdip.ahk #SingleInstance Force pToken := Gdip_Startup() Gui, Destroy contents = ( GRAND CHAMPION KEF 75.000.000 HIGHEST SCORES #1 G G 60.000.000 #2 C G 50.000.000 #3 XAQ 45.000.000 #4 M G 40.000.000 DESTROY RING CHAMPION EYE - 10:00.00 ) ;vertical distance of Hiscore window HiScoreTopDistance := 100 ;Gui 1 - hidden horizontal Gui Gui, 1: Color, 0b40e4 Gui, 1: Font, s15, Quartz Gui, 1: Add, Text, Cffffff Center, %contents% Gui, 1: +AlwaysOnTop -Caption +Lastfound hwnd := WinExist() Gui, 1: Show, NA WinGetPos,scorex,scorey, scorew, scoreh, ahk_id %hwnd% pBitmap := Gdip_BitmapFromScreen("hwnd:" hwnd) Gui, 1: Show, Hide ;Gui 2 - hiscore background image imageW := scoreh+20, imageH := scorew+40 Gui, 2: -Caption +E0x80000 +LastFound +OwnDialogs +Owner +AlwaysOnTop Gui, 2: Show, NA hwnd1 := WinExist() hbm := CreateDIBSection(imageW, imageH) hdc := CreateCompatibleDC() obm := SelectObject(hdc, hbm) G := Gdip_GraphicsFromHDC(hdc) Gdip_SetSmoothingMode(G, 4) pBrush1 := Gdip_BrushCreateSolid(0xff0ffffff) pBrush2 := Gdip_BrushCreateSolid(0xff00C32A5) pBrush3 := Gdip_BrushCreateSolid(0xff0b40e4) Gdip_FillRoundedRectangle(G, pBrush1, 0, 0, imageW, imageH, 20) Gdip_FillRoundedRectangle(G, pBrush2, 5, 5, imageW-10, imageH-10, 15) Gdip_FillRoundedRectangle(G, pBrush3, 10, 10, imageW-20, imageH-20, 10) Gdip_DeleteBrush(pBrush1) Gdip_DeleteBrush(pBrush2) Gdip_DeleteBrush(pBrush3) UpdateLayeredWindow(hwnd1, hdc, HiScoreTopDistance, (A_ScreenHeight-imageH)//2, imageW, imageH) SelectObject(hdc, obm) DeleteObject(hbm) DeleteDC(hdc) Gdip_DeleteGraphics(G) ;Gui 3 - rotated vertical Gui Gui, 3: -Caption +E0x80000 +LastFound +OwnDialogs +Owner +AlwaysOnTop Gui, 3: Show, NA hwnd2 := WinExist() bitmapW := scoreh, bitmapH := scoreW hbm := CreateDIBSection(bitmapW, bitmapH) hdc := CreateCompatibleDC() obm := SelectObject(hdc, hbm) G := Gdip_GraphicsFromHDC(hdc) UpdateLayeredWindow(hwnd2, hdc, HiScoreTopDistance+10, (A_ScreenHeight-bitmapH)//2, bitmapW, bitmapH) Gdip_ImageRotateFlip(pBitmap, 3) Gdip_DrawImage(G, pBitmap) UpdateLayeredWindow(hwnd2, hdc) Gdip_DisposeImage(pBitmap) SelectObject(hdc, obm) DeleteObject(hbm) DeleteDC(hdc) Gdip_DeleteGraphics(G) return I used GDI+ rectangles to construct the appearance. This could be a faster way to construct the hiscore window. I really do not know. If you want i can adjust the code to use a pre made png file. Blur, you decide. The only thing more important is that by using the GDI+ rectangles, I made the HiScore windows resizable depending of the hiscore contents lines (as different pinball tables have a different number of hiscore categories). I hope that this is what you had in mind. I do not have the future pinball in my computer, so I do not know how it is the hiscore visualization under it, so I tried to keep the same appearance of the pause menu in a HiScore menu to be put above it. My first idea was also to use the transparency in the rotated text to put it directly above the table image when in pause menu. But I am having problems with setting the transparency in the rotated bitmap created. If I, or someone else, solve this, we could do any kind of presentation for the hiscores. It is also possible to do many animations or use GDI+ advanced text with the score in the way that I present here. However i decided to keep it simple in order to avoid using too much resources. Any animation requires a loop in rotated bitmaps that could use something of the computer resources. If any of you have in mind something specific, just tell me and I can try to implement in the HiScore menu. Please give me your opinions. PS: It is a not revised code, so it is possible, and very probable, to have some unnecessary lines in the middle of the code.
  • Create New...