I’ve recently acquired a broken F355 twin cab (well, half of one at least) so I set about with renewed vigor trying to finally get this game to work full screen using the Demul emulator.
If you intend to play F355 with a standard controller - stop reading; The Dreamcast version is so accurate the difference isn’t worth the effort, it’s easier to setup and the sensitivity of the controls will work far better for you (ditto the PS2 version probably). If, however you’re also doing a racing game arcade conversion or are similarly ‘insert coin’ inclined – read on.
I've cobbled together a number of pointers I’ve learned along the way for getting the Naomi version of F355 to work in full screen while also being somewhat integrated with Launchbox.
It’s work-in-progress, hacking together bits of information I've stubbled across from AHK scripts to the correct settings (or at least one's I got working) in Demul emulator and in Launchbox. Often drawing on these very forums. A big thank you to this community and everyone who has unknowingly helped me out in my various projects over the years. I’m very keen to get pointers from anyone who’s achieved this a better way but info is scarce so i thought i'd share what i've managed so far.
Hopefully the following might prove useful to someone:
A couple of assumptions to bear in mind:
I'm using an older version of Demul v0.7 from April 2018 that allows you to select ‘GPUDX11old' plugin. I assume the same works on the new version Demul v0.7a but hasn’t been tested (that's the version that forces you to use the new GPUDX11 where you don’t get to change things like internal resolution).
For some reason, my experience running F355 and F355 2 doesn’t require the second (first???) Naomi bios window to be the active window in order to control the game (but I'm unable to access the game test menus to change settings unless I make it so). This is something I regularly heard had to be done - but I’ve never had to, so your mileage may vary. Get your game test menu settings sorted first then hopefully you won’t have to worry.
I’m using an Xbox control pad here – but intend to move the PC into my F355 arcade cab using Ipac board or some such device.
I've got an Auto Hotkey script that automatically forces the main window to full-screen on launch, without boarders or windows titles displaying. So, you'll need AHK installed if you haven’t already (maybe it can be done ‘natively’ within LB’s emulator ahk settings but I haven’t tried yet).
My work-around works on both F355 twin (F355twin.zip) and F355 2 twin (F255twn2.zip). It would have to be amended to work with the deluxe versions, which have 4 Naomi board windows open at the same time instead of just 2.
I haven’t yet devised a clean way to exit F355 from LB/BB - but I have some thoughts on how it might be achieved. But the following steps I hope will be helpful even if you’re not using LB.
My PC is I7- 7700k, GTX1080TI, 16GB RAM
I’m running Demul emulator at 5X internal resolution and it’s working fine for my setup. Remember Demul has to cache graphics and wot-not while it runs a game for the first time so your initial play through will stutter but when you go back to the same track again in should be fine.
Finally, I don’t really know what I’m doing. But I’m persistent enough that once I’ve got something in my head I usually manage to get it working in a way that is (almost) good enough for me. Hopefully it’s helpful for the one other person that might be trying the same thing ?
Step 1: Get the game working in Demul first.
Worry about LB integration later.
Check, double check and triple check all of your paths and plugin paths within the emulator, setup your controls and display setting etc, and you’ve got the right ROM and bios files in the right place
Set your ‘window display’ in the video display to match your screen’s native resolution - and disable launch full screen (it doesn't work anyway for F355). V-sync works quite well with no noticeable input delay and definitely helps with a consistent frame rate on my monitor..
There are other tutorials showing you how to setup Demul and run Naomi games, however specific to my work around you'll need to turn-off VMU display in the Maple plugin settings - otherwise for some reason they continue to display:
(If you need your VMU displays for other games, you can always have separate instances of Demul in different folders and they can have their own separate settings – you’ll just need to set them up as separate emulators in LB):
When you set the controls in Demul, make sure you remember what you've set for the Naomi arcade board test menu buttons - but also the default key for System boards (F2 and F4). You wouldn’t believe how long this had me stumped where F355 wasn’t starting because it was always looking for a network - I could not find a way to access the game’s test menu to change it because i was using the keys i assigned in the 'Arcade' controls but didn't see the defaults for 'System Boards' that i should have been using!
Step 2: Run game and configure Test menu settings
With the game now running, enter the test menu and make any changes to the game settings that you require (remembering the test buttons you set above).
To enter the test menus, make sure your black Naomi bios window is the one in focus, hit the key you assigned - then navigate to the test menu. It's a bit confusing which window has to be in focus - for me it has to be the window with Ferrari F355 in the title - but once i got to the test menue and moved on to the 'game test menu' i had to switch focus to the second window (with 'multiboard' in the title
For me, I had to change ‘Link ID’ from Master to Single and Cabinet set to 'Twin'. Go to Game Test Mode > Game Assignments and you'll find these settings. That's it you can exit the settings, bring the main game window back into focus and play the game!
Or is it...? The windowed view really sucks; the window title and Demul options tabs always displayed even if maxamised... and horrible boarders. Before you close the multiple windows, make an exact note of the window title displaying on the window the game is actually running in (also make a note of the most common SPG and GPU fluctuations that are also contained in this title). This will make sense in the next step. Mine looks exactly like this:
gpuDX11oldhw | spg: 60 gpu: 60 | Multiboard Slave
Step 3: setup new AHK script file:
You'll need AHK installed. Setup a script by editing in Notepad for your .AHK file and save to an appropriate location so you can point LB towards it later.
If you’re not using LB, you can just manually run the script before launching Demul and it will still work.
I cobbled together the following script from various sources - and no doubt there’s a much more efficient way of doing this but essentially, when the script is ran it then waits for the 'gpuDX11oldhw | spg: 60 gpu: 60 | Multiboard Slave' window to display (until my GPU reaches 60 it won't trigger - so your number might be specific to the performance of your system running Demul).
When this window generates, the script forces Window’s to focus it on top of the pile, then removes the boarders, title and menu of the window and forces it to full screen. The script then stops and the window is left in full focus and the game still playable. Copy the following into notepad then save as .ahk file:
Loop
{
ifwinexist gpuDX11oldhw | spg: 60 gpu: 60 | Multiboard Slave
If (ErrorLevel = 0 )
{
WinActivate
Winmaximize
WinSet, Style, -0xC40000, A
DllCall("SetMenu", uint, WinExist(), uint, 0) ; Remove menu bar of "last found window".
Break
}
Else
Sleep 1000
Continue
}
#SingleInstance force
You can use the same script for F355 and F355 2 as the Slave window title is the same for both.
4: Launchbox setup
Import the rom files and setup Demul as an emulator in LB, if you haven’t already. These are my LB emulator settings:
Add your Associated platforms on the second tab in the wizard as normal but also key a default command line – type it, don’t copy and paste as I think that causes issues:
-run=naomi -rom=
Startup and Pause screen - I think you can set to however you want to hide mouse etc - but I probably wouldn't suggest enabling any of the aggressive window hiding start up options due to the multiple widows required to run this game.
Running autohotkey script - I add the existing one to close down emulator using Esc. Again an issue with F355 is that there are (at least) 2 windows open when the game is running. Exiting the game via LB, shuts down one instance of the emulator but not the other (by now the game freezes as the Naomi bios has been removed) and you’ll have to ALT+F4 out of it. I've not solved this problem yet - but something added to the 'press esc to close emulator' AHK available on these forums (or a fresh script), to follow with another instruction to wait a second then auto apply a single press of ALT+F4 to force the remaining Naomi slave game window to close (the theory works, I just need to remember the correct AHK script to achieve these automatically).
With the emulator setup, edit the F355 game settings in LB by right clicking on the game and selecting 'edit'. Then select ‘Additional Apps’. Add the AHK script file you put together earlier and tick ‘Automatically run before main application:
Save, and should be job done.
You might also need to add the Demul emulator command line here too:
No idea why, but sometimes I need it here, sometimes it’s just fine using only the line I added in the emulator wizard setting (I’ve got at least 5 instances of Demul setup for various games/platform preferences – horrible way of doing things but it works for me for now). Here’s command again just in case:
-run=naomi -rom=
Now, when you select F355 from LB it will tick over as usual while it loads, then switch to full screen, no boarders, still controllable!
IMG_5008.MOV
If any one has any idea on how i can streamline the 'maximise window' AHK script - and help with a script that will combine the existing 'Esc to exit' script with a delayed Alt+F4 command to cleanly exit the left-over F355 screen - that would save me a job.
No doubt far easier to achieve this end result using Retroarch - but it's the one emulator I can't get on with because of it's playlist/rom name requirements no matter what i do. It's a shame as i love a lot of the options some of the Cores provide but where i have managed to get it working on certain systems, it's been more by luck - so have always avoided it where possible.