Jump to content
LaunchBox Community Forums

F355 challenge - Naomi - Demul Full screen setup


Eckers569

Recommended Posts

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:

image.thumb.png.f34540c1598810d597f6e8d71a52ff8b.png

(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!image.png.45fb610679c26cce1dcdaa2f42bf0bb7.png

 

 

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:

 image.thumb.png.d6fb77fb2fdc35b9c60153c2fcd706e8.png

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:

image.thumb.png.aaeae4255c79a6a44032536dee865229.png

 Save, and should be job done.

 

 


You might also need to add the Demul emulator command line here too:  image.thumb.png.fb2f0182b184d2cd2b272c995dc2dcfc.png

 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.

 

 

image.png

Edited by Eckers569
Reinstalling the games from scratch so adding new notes as i go
  • Like 1
Link to comment
Share on other sites

Nice write up and very helpful - could have done with it when I tackled this game.

Not sure if this will be much help, because I use a newer version of demul and also change the demul.exe name to make it easier for me to know which emulator version I am working on (eg driving games, light gun games etc) and also need to have the "other" window focused to be able to play the game but below is my exit ahk.

I have this for all demul driving games, it works fine by closing the game window on normal games nicely and then just ignores the 2nd command as nothing there to close, but for F355 it closes the hanging window as well, there is most likely a better way to do it, but this works for me and might be a good starting point for you to improve on.

Goes into Running Ahk tab in emulator - I have adapted it to take into account the name of your window and the fact you most likely don't rename demul.exe, and yes I know that Process, close is not recommended but on this occasion I found WinClose didn't seem to work as like you said you need to Alt&F4 the window

#SingleInstance, Force
DetectHiddenText, On
DetectHiddenWindows, On
SetTitleMatchMode, 2

$Esc::
{
WinClose, gpuDX11oldhw
Sleep, 2000
Process, Close, demul.exe
ExitApp
}

Might need some tweaking but good luck with it

Edited by Kiinkyfoxx
  • Like 1
Link to comment
Share on other sites

That’s a Great tip. Much appreciated. I’ll give it a go tonight.

i don’t know if my not having to focus the 'other' window is a result of using Xbox game pad or it was because I tested all the analogue controls in the game test menu? Might have calibrated in the game or something when I did this tested. I assumed maybe people thought it just had to be in focus all the time when, as i've found, i only need in focus to access the game's test menu settings. Weird. It’s the only thing I can think that I’ve done differently - otherwise I just lucked out. Might be worth trying for those still trying to get it to work full screen without the 'other' screen in focus fuss. I just hope it carries on working this way when i shift it all over to my cab (or if I ever have to setup again form scratch).

Thanks again.

Edited by Eckers569
Link to comment
Share on other sites

12 hours ago, Kiinkyfoxx said:

#SingleInstance, Force
DetectHiddenText, On
DetectHiddenWindows, On
SetTitleMatchMode, 2

$Esc::
{
WinClose, gpuDX11oldhw
Sleep, 2000
Process, Close, demul.exe
ExitApp
}

Might need some tweaking but good luck with it

Works a treat - no tweaking needed. Thank you so much - saved me a couple of hours!

Link to comment
Share on other sites

  • 2 weeks later...

Having identified my F355 cab is beyond my means of repair (well,  2 hours  spent re-wiring every component back in it's correct place - hoping it might 'just work'  - only to discover that I'd purchased a Player 2 cab which doesn't have a traditional power supply), I concluded it wasn't  worth any more effort trying to bring this baby back to how God intended. So, I  committed to converting it to an out and out emulation machine - but F355 a none-negotiable...

While doing so, I've verified that when using Xbox One controller (wired) and the DEMUL emulator, you don't actually have to have the black bios window permanently in focus; once you set the controls up on your Xbox pad, start the game as usual with the other window in focus and enter the game's settings menu (F4) - from there navigate to Test Mode Menu > Input test and run through all your controls on the pad. Once you've done it once, bring the main game window into focus and it will now continue to register your controls even when you exit the menus and commence the game (it even remembers it for subsequent plays).

This is either a weird quirk of the Xbox controller or something particular to my system. 'Great', I thought, just need to do the same thing with my racing wheel in place of the Xbox pad and away we go. However, it didn't work. I'm using the Thrustmaster TX (in it's Xbox mode) and this work-around no longer recognised the inputs without the other window in focus. I tried mapping my TX analogue axis via UCR to replicate a standard Xbox (albeit 360, I think) - no joy either.

So, it seems I'm not as blessed as I'd initially thought and back in the same boat as everyone else trying to run the single screen version of this game via DEMUL.

To resolve, I've created a new AHK script in place of the one in Step 3. above (well, shunted together bits of AHK code from other people). It appears to have worked for me, so again maybe someone else will find it useful.

It does the same stuff as above - making the game window full screen with no menus etc - but also now activates the other window over the top making it completely invisible while allowing you to control the game without it getting in the way:

 

#SingleInstance, Force

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
}

Loop

{
ifwinexist gpuDX11oldhw | spg: 60 gpu: 60 | Ferrari F355 Challenge (Twin) <or '..... Ferrari F355 Challenge 2 (Twin)' for that version of the game>

If (ErrorLevel = 0 )

{
WinActivate
Winmaximize     
WinSet, Transparent, 0
Break
}

Else
Sleep 1000
Continue
}

 

Again some one else could probably come up with something much more efficient but it seems to be working as a starting point for me.

You'll now need two separate AHK scripts for both versions of the game instead of just one (F355 and F355 2 twin) and link them appropriately as additional apps in Launchbox as before for each game.

The 'close script' KiinkyFoxx detailed above still works a treat and is set up separately in LB as the running AHK in the main emulator setup/tab. Assuming, like me, you're running separate folders/instances of DEMUL for these multiboard Naomi games.

I've had a nightmare getting this game to work how I'd like it to; my busted F355 cab providing the motivation for finding work-arounds a little more obsessively than most would consider normal - and I haven't even attempted to really setup my wheel and pedals correctly into DEMUL yet, which I know from past experience is going to be tricky - and may very well bring this whole episode to an unsatisfying conclusion. Maybe I'll just cover the thing in Daytona USA 2 stickers and be done ? 

 

 

 

 

Edited by Eckers569
Link to comment
Share on other sites

  • 1 month later...

Thanks very much, this was a huge help. Based on the advice here, I settled on an ahk that does the job of activating and hiding the second screen, as well as escape to exit (below: just some small changes to what was posted here in case they can be of help to someone).

I too have a Thrustmaster and am stumped on the inputs for accelerator/brake. Everything else works fine. I'd love to hear if you got anywhere. I suspect that having a combined rather than separate axis would work ok but that's not how I'm set up. Currently I have ANALOGUP = 33554433, ANALOGDOWN = 33554689 which gives auto accelerate, best guess is it needs to reverse the input (as in Mame) to register properly.

 

#SingleInstance, Force

Loop

{
ifwinexist gpuDX11oldhw | FPS: 60 RPS: 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
}

Loop

{
ifwinexist gpuDX11oldhw | FPS: 60 RPS: 60 | Ferrari F355 Challenge

If (ErrorLevel = 0 )

{
WinActivate
Winmaximize
WinSet, Transparent, 0, A
Break
}

Else
Sleep 1000
Continue
}


 #SingleInstance, Force
DetectHiddenText, On
DetectHiddenWindows, On
SetTitleMatchMode, 2

$Esc::
{
WinClose, gpuDX11oldhw
Sleep, 2000
Process, Close, demul.exe
ExitApp
}

Link to comment
Share on other sites

And here's the solution to reversing the pedal input. On a Thrustmaster T150 with non-combined pedals, use the following codes for accelerate/brake:

LTRIG = 33554689
RTRIG = 33554693

and for jamma

ANALOGUP = 33554693
ANALOGDOWN = 33554689

Edited by SMQ7
  • Like 1
Link to comment
Share on other sites

23 hours ago, SMQ7 said:

And here's the solution to reversing the pedal input. On a Thrustmaster T150 with non-combined pedals, use the following codes for accelerate/brake:

LTRIG = 33554689
RTRIG = 33554693

and for jamma

ANALOGUP = 33554693
ANALOGDOWN = 33554689

Good shout. I had a lot of trouble separating pedals in particular and these are the settings I also went with.
 

I also tried to use x360ce to try and remove the dead zone that this left me with, they only kicked in about half way down as separates. This didn’t work though as Demul refuses to acknowledge emulated inputs. Im still to decide if separate pedals with this deadzone is the best way for me or just go back to combined pedals in the Thrustmaster settings (which isnt great for other racing games) - it’s a shame thrusmaster still don’t have per game pedal settings like Logitech.

Edited by Eckers569
Correction after checking
Link to comment
Share on other sites

On 1/28/2021 at 7:46 PM, SMQ7 said:

Thanks very much, this was a huge help. Based on the advice here, I settled on an ahk that does the job of activating and hiding the second screen, as well as escape to exit (below: just some small changes to what was posted here in case they can be of help to someone).

I too have a Thrustmaster and am stumped on the inputs for accelerator/brake. Everything else works fine. I'd love to hear if you got anywhere. I suspect that having a combined rather than separate axis would work ok but that's not how I'm set up. Currently I have ANALOGUP = 33554433, ANALOGDOWN = 33554689 which gives auto accelerate, best guess is it needs to reverse the input (as in Mame) to register properly.

 

#SingleInstance, Force

Loop

{
ifwinexist gpuDX11oldhw | FPS: 60 RPS: 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
}

Loop

{
ifwinexist gpuDX11oldhw | FPS: 60 RPS: 60 | Ferrari F355 Challenge

If (ErrorLevel = 0 )

{
WinActivate
Winmaximize
WinSet, Transparent, 0, A
Break
}

Else
Sleep 1000
Continue
}


 #SingleInstance, Force
DetectHiddenText, On
DetectHiddenWindows, On
SetTitleMatchMode, 2

$Esc::
{
WinClose, gpuDX11oldhw
Sleep, 2000
Process, Close, demul.exe
ExitApp
}

And thanks for this too. Useful tips which I’ll try out later.

So glad this thread has been of help to someone else. It’s a great game and well worth the effort.

From memory, I also got some rumble/ feedback settings working on my wheel via Boomslangz FFBarcade plugin (a tecknoparrot plugin I believe but now extended to Demul and MAME) -although I can’t remember if this worked or if I imaged it (these games and emulators have started blurring into one!) https://github.com/Boomslangnz/FFBArcadePlugin

 

Edit: I’ve checked again and the FFBarcade plugin didn’t provide the missing feedback on this game (got confused with Daytona 3 which I was setting up around the same time) - only limited Demul support at this time. It’s still a great plugin to have to hand though for other racing games of times past.

Edited by Eckers569
Correction update
Link to comment
Share on other sites

  • 2 weeks later...

Hi there. Unfortunately I don’t really have 3 monitors to try it out with (well, 3 very mismatched monitors using separate DVI, HDMI and DP connections - so I doubt I can even get a multi-screen setup working within windows).

I imagine getting all the F355 windows to at least open full screen would be relatively straight forward if their names are different. However getting the correct window on the correct monitor I can see being more difficult. I’m planning to tweak my setup over the next few weeks so will see if I can figure 3 screen/full-screen out.

Link to comment
Share on other sites

  • 3 weeks later...
  • 5 weeks later...

hmm, this is cool. so the ahk seems to work..after several attempts to "connect" it comes up to the game play screen fullscreen but then i have no control/inputs. double checked my demul arcade inputs are setup right. i have 5 for coin and 1 for start but it won't even accept coins. any ideas?

thx...Piper

Link to comment
Share on other sites

17 hours ago, PiperCalls said:

so if i alt+tab so that the 2nd window is up i can enter coins & start. i can then alt+tab back to the main window and have full controls. it looks like the game just won't accept coins/start without the 2nd window in focus...weird. any ideas?

Hi. Yeah - this is the issue resolved through the steps above. I’ll probably go back and edit so it makes more sense since other people have contributed. But the steps above make the second (control window) in focus - but also turn it invisible so you can still see and control the game. Read this thread from the start and also the other contributions and that should solve for you (single screen version at least - not sure yet how to deal with 3 screen version). 
 

Works with coin input too.

Are you using a pad, racing wheel or keys for main game input? I found Xbox pad work no matter what order the windows were in but had to use all the work around outlined above for race wheel/keys

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...