VirtualBox/WINE Support for Game Maker apps

A place for people with an interest in developing new shmups.
Post Reply
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

VirtualBox/WINE Support for Game Maker apps

Post by BPzeBanshee »

There's been a little discussion about this side of things in the past but split across many threads in the last 5 years I've been here, so I thought I'd make a thread for it.

First off, I just wanted to let all GM developers know that as of the latest version of VirtualBox that I tried on my old iMac (v4.3.12), my old test build of an edited Warbird no longer requires my vbox_mode hack to display to correct scale in fullscreen! In addition, it runs in windowed mode very nicely now. Xeno Fighters R v0.11 also ran but was also slow as horseshit (I suspect due to Alluro's preliminary surface rendering combined with the overall performance cost of running a virtual machine on my iMac), v0.6 however ran very nicely.

Previously windowed mode was offset so you couldn't see most of the game and in fullscreen the game screen was present in the top-left corner only with the rest full of garbage. While the scaling and switching between fullscreen and windowed is very nice now, Game Maker 8.0 as a program within VirtualBox is unstable as fuck, and there's still less-garbagey-looking garbage where it should be drawing black. I'm considering trying to get it so that it draws black outside the rooms and do a 640x480 window that will hopefully get rid of the distortion, but last time I attempted to manipulate what the "outside" of the view looked like I had to resort to surfaces which will kill performance and add additional compatibility issues here.

So I'm hoping with this thread we'll be able to document just how well things work. There's a similar thread in Shmups Chat for most doujin games iirc and I'm sure with some collaboration we can get a definitive list of what versions work, example games etc. If anyone's good with WINE or VirtualBox or has experience in this area I'm sure we're all keen to hear from you. I'll probably be looking for testers soon to see if I can pull it off again without resorting to surfaces, and I figure a central thread for collaboration or at least tidbits of info on this would be all appreciated. Last I checked I think null1024 had all of his pre-GM7 working under VirtualBox and Wine, trap15 and a Linux-savvy friend of mine tried GMOSSE some versions ago and got it working with distortion on the edges, and Dave K was the one to help smoothen the rough edges of vbox_mode in newer GMOSSE-based games a bit over a year ago. If any of you guys are able to give some insight here it'd be much appreciated! :)
User avatar
S20-TBL
Posts: 440
Joined: Mon Jan 18, 2010 6:48 am
Location: Frying over a jungle and saving the nature
Contact:

Re: VirtualBox/WINE Support for Game Maker apps

Post by S20-TBL »

BPzeBanshee wrote:Previously windowed mode was offset so you couldn't see most of the game and in fullscreen the game screen was present in the top-left corner only with the rest full of garbage. While the scaling and switching between fullscreen and windowed is very nice now, Game Maker 8.0 as a program within VirtualBox is unstable as fuck, and there's still less-garbagey-looking garbage where it should be drawing black. I'm considering trying to get it so that it draws black outside the rooms and do a 640x480 window that will hopefully get rid of the distortion, but last time I attempted to manipulate what the "outside" of the view looked like I had to resort to surfaces which will kill performance and add additional compatibility issues here.
Someone over on another forum actually made a Wine build of Papilio that runs on both Linux and Mac, but caused the same "garbage" display problems when the "Keep Aspect Ratio" global setting is enabled. I was able to get rid of it by unchecking the option for a more recent build. Otherwise, MacOS issues aside (the X11 driver reportedly causes the game to run at half speed), the app has no other foibles.
Last edited by S20-TBL on Thu Jul 24, 2014 3:31 pm, edited 1 time in total.
--Papilio v0.9 Beta now on itch.io! (development thread)--
Xyga wrote:Blondest eyelashes ever.
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: VirtualBox/WINE Support for Game Maker apps

Post by BPzeBanshee »

Mac OS X only goes as far as Mavericks (10.9), unless he's an Apple intern :P

Thanks for the heads-up though, I didn't think to mess around with that side of the video settings. Wouldn't that mess up the aspect ratio for verts though (like stretching it across monitor size)?
User avatar
S20-TBL
Posts: 440
Joined: Mon Jan 18, 2010 6:48 am
Location: Frying over a jungle and saving the nature
Contact:

Re: VirtualBox/WINE Support for Game Maker apps

Post by S20-TBL »

BPzeBanshee wrote:Mac OS X only goes as far as Mavericks (10.9), unless he's an Apple intern :P
My bad, said person was referring to the X11 driver for MacOS, which was causing slowdown.
BPzeBanshee wrote:Thanks for the heads-up though, I didn't think to mess around with that side of the video settings. Wouldn't that mess up the aspect ratio for verts though (like stretching it across monitor size)?
It will. On a hori like Papilio this isn't really an issue (it gives the game that Capcom CPS2 look with the 384x224 resolution) and I'd wager it wouldn't be a problem for vertizontals and tate'd displays either, but pure vert is a different story unless you specifically dedicated screen real estate to the HUD like Crimzon Clover and Touhou do.
--Papilio v0.9 Beta now on itch.io! (development thread)--
Xyga wrote:Blondest eyelashes ever.
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: VirtualBox/WINE Support for Game Maker apps

Post by BPzeBanshee »

Yeah, that'd be a problem. The other attempt I was going to do (but haven't had the time/energy) was to hook up a bit of my surface trickery that I did with Zenodyne some time ago (which you really should check out btw since I think you missed it). Make room size huge, copy game screen to a surface, draw "background" on top after that, then by end of frame (Draw event) draw the surface wherever I like. Had to redraw everything twice for some stupid reason to even get that to work though and it's hell on performance.
User avatar
S20-TBL
Posts: 440
Joined: Mon Jan 18, 2010 6:48 am
Location: Frying over a jungle and saving the nature
Contact:

Re: VirtualBox/WINE Support for Game Maker apps

Post by S20-TBL »

True, GM's surface drawing may smooth out graphical kinks like stray artifacts and mis-rendered lines (as well as allow you to pull off some very nice Mode 7 tricks), but in the end you have to redraw everything twice which really kills performance. I'm not sure if GMS improved GPU compatibility issues with surfaces, but there's also that catch for older or incompatible PC setups, at least, which is a red flag in itself for WINE or VB emulation.

(I grabbed Zenodyne by the way. Very nice looking, though the "warp lines" background is quite distracting. :P I wanted to ask you how you managed the hiscore file and table.)
--Papilio v0.9 Beta now on itch.io! (development thread)--
Xyga wrote:Blondest eyelashes ever.
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: VirtualBox/WINE Support for Game Maker apps

Post by BPzeBanshee »

Mode 7 can be done without surfaces, I found a tutorial doing just that on the GMC along with the wobbly fire effect using line-by-line draw_background_part - not the most efficient way of doing things though, and heaven help you if you want to still use GM's default background behaviour. GMS' newest version has not only made surfaces compulsory though but finally allowed access to the game's own application surface. I think this way it should allow you to not have to draw things twice combined with use of that gml function to disable automatic redraw.

Hiscore system in Zenodyne is similar to that of GMOSSE but made to run using arrays, with a different array for difficulty mode. I'm not sure if I ever updated GMOSSE to use two-dimensional arrays off the top of my head but it'll be a must if I want it to work under GMS.
Post Reply