Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. Thank you for your support. Tom Speirs

Patreon

[Dev Diary] TypeXtra - A Taito TypeX launcher


stigzler

Recommended Posts

TypeXtraLogo_500W.png

(Dev diary) - bringing back Comic Sans!

So I've had to come on here for my own sanity. I know - must be bad, right!?

So I just couldn't help it, I had to make another app. It happens like this - do something - go back to my cab to carry on setting up up given the new something, then another new 'something' crops up. This time it was TypeX and Nesica setups.

I remember I had difficulty with TypeX before - setup was hit and miss at best. Those who have braved it know it isn't as simple as "point the Emulator at the ROM and twiddle a few settings). Each game is a PC game in itself - made for different specs and setups. 

So, foolishly I thought - "meh - how hard can it be to write an app to automate all of the setup process?"

I'll never learn. 

Well 10 days straight I've been hammering away at it and every problem solved has led to 2 more! However, I have learned an awful lot about the clandestine world of TypeX and Nesica.

The aim is this - to run the app, to point it to where your game files sit, click once to scan and then another button to set all of the games up. Getting close, but the work behind the scenes to achieve this is bonkers. Few coding challenges I've had to overcome:

  • implementing a "verified install" system to allow user to install zipped packages that have been verified as kosha (running checksums on files and keeping a database secretly tucked away in the app!) - this was because TypeXtra will not carry and illegal files. You can import modified game exes (such as HD updates and improved performance on PCs)
  • Make an autoscan system  - scans game folders and pulls out game.inf files, matching these to known games in the database.
  • Manipulating displays - turning them off and on as the loaders don't like multi-monitor setups (and you know that's gonna be a biiig problem for me, right! - luvin those screens - wanting Wargames WOPR standards on my cab!)
  • Other stuff that weirdly, I have no idea of at the moment (what have I been doing for the past 10 days?!)

Oh, that's right - lots of internet trawling and reading french forums. >,<

A couple of bits of dev that I'll keep in my bag:

A new help system - dead easy to knock together using html, treevews and hidden tabs:

help.png

A new Settings system - better then my usual 'crammed in' style (and realistic this time that I inevitably will be adding more settings later on - expands easily):

setts.png

Anwhoos, here's the features malarky from the help:

Quote

Features:

  • Import other "Game Service" sets - ones that are designed to ensure games boot OK. Some of these have modified game executables, therefore they're not included with this distribution. However, see elsewhere for instructions on obtaining and importing.
  • Import "HD Exe" sets. The original game executables ran at lower resolutions. Some modified executables have been produced to have these games work at higher resolutions (not just stetch to fill your display, but to actually render at higher resolutions).
  • Customise what files launch the game, what file to monitor for the game ending and what controls setting application to use on a game-per-game basis.
  • Runs invisibly from command line - once you have your games set up, send it the short ort long game name and it will boot the game and close itself once the game executable has stopped. This helps with front end setups, where the front end will monitor for the temrination of the launch application (in this case, TypeXtra).
  • Create shortcuts pointing towards the game launch files in either the 'long' or 'short' game format. This can be used to have a front end launch a file directly by executing the shortcut, or, more helpfully, get the correct command line parameter to pass to TypeXtra to launch the game.
     

And a sneaky peak screen shot:

screenieV0.8.png

So at the moment, I'm working on:

  • The per-game displays controls (turn off/on, rotate etc)
  • Integrating Game Loader All Rh to allow accessing specific game config from the TypeXtra GUI. 

The real challenge has been sticking to the initial principle of a two click setup. This means lots of work-arounds behind the scenes  to get an unruly bunch of game files looking like a perfectly co-ordinated set.

It's been like herding cats..

 

https://magoarcade.org/wp/typextra/

  • Like 3
Link to comment
Share on other sites

Blurgh...

OK - so got displays truing on and off per game via NirSofts' excellent MultiMonitorControl. Even managed to turn them all back on again once the game has finished - re-arranging them into their pre-existing arrangement (layout, orientaiton etc)

However, of course, the real problem is putting all the bloody windows back where they were before the game ran...

Nightmare. Currently lost another day to going round in circles using unmanaged code to store visible windows and location and then put them all back again. Totally confused with all the pinvokes and different varieties of class names, window names, process ids etc..

What really grates is that it's only for one or two games (Battle Gear 4 and Samurai Showdown - these don't like multi-monitors!)

May try without re-arranging windows and see how it fares. 

Link to comment
Share on other sites

@DazzleHP - damn - I've been trawling TTX games during this dev + there are some awesome schmups on it! Shikigami no Shiro III being a fave - love this whole genre - Homura etc - 3d backgrounds with bullets everywhere! I've gotta make a dedicated schmup cab one day with vertical screen.

Link to comment
Share on other sites

And...boom! TTX Done. All greens, baby!

ttxdone.png

The detail:

TTXBoom.png

All games but 2 up and running from 3 click process (as long as your sets are right, of course!)

Blimey - it's really tedious! Some really obscure barriers to booting some and it seems that no-body has ever drawn everything together in a guide. 

The 3 games having difficulty with:

BlazBlue Calamity Trigger - boots but severe graphics bugs. Some conjecture somewhere that it may be due to AMD cards? (i.e. GPU on my test rig)

Taisen Hot Gimmick - doesn't boot. Error in Japanese. 

King Of Fighters - Maximium Regulation A - Boots - splash-screen then hangs. 

Any TypeX fanboys out there? Anyone know much about these?

Oh, and those two days of coding around display management.. for one game! (which doesn't run very well, either!)

  • Like 1
Link to comment
Share on other sites

You calling me fat, fella? Lol!

I thought there was a TTX have that needed to flip, but looking at my game list I was wrong. One of these had some display issue though, can't remember what it was.

Aside from the rotation I mean.

Link to comment
Share on other sites

1 hour ago, Adultery said:

You calling me fat, fella? Lol!

I thought there was a TTX have that needed to flip, but looking at my game list I was wrong. One of these had some display issue though, can't remember what it was.

Aside from the rotation I mean.

Ah, yeah, no. However it does surprise me given that everything else about this system is a PITA. 

Link to comment
Share on other sites

It was BlazBlue, and I could only get it to run if I disabled my 2nd monitor. Just tried it. :)

Maybe a non-issue, my set is way out of date.

Link to comment
Share on other sites

@Adultery Calamity Trigger or Continuum Shift?

Please say the former! I just tried that here on AMD card + still no dice, although could be the exe version. Let me know. 

Now incorporating an exe database based on checksums of the exes with whether they're working or not, or what things need to be considered when using them. So this kinda info invaluable, A!

 

 

Link to comment
Share on other sites

Update:

A lot of the time/hassle in this dev has reflective of the main hassle with TTX. So many .exes. So many launch methods. So many variables (user PC etc). 

I've fallen afoul of lots of different types of spanners in the works and tried to control for most of them. One of the outstanding issues is around knowing whether the main .exe file the launcher (or just directly) is using is a 'good rom' or not. The name and date alone may not tell you that. 

So I've built in a 'known good/bad' checksum database which hopefully, once populated, will let people know whether they are using a dud or a good exe. An example below AH3:

ExeChecks.png

The associated good/bad rom data is the bottom table. The 'MD5' is a unique ref generated from the exe itself. Thus, once the database is populated, users will know the status of their 'rom' 

Of course, the true task is going to be in the database population. I very much doubt I'll be scouring and grinding for files to test. Any ideas?

Link to comment
Share on other sites

HAHA! I signed in to reply to this topic, then got an alert that i was mentioned in this topic ^_^

Seriously though, OOOOOMMMMGZ, you're really going for this?? Fair play, tips hat, flips a shilling etc. I thought initially as i was reading "i should warn him, it's the decent thing to do", then, as i read on i became painfully aware how far down the rabbit hole you've already gone! :D

As a user/player and not a coder, when TTX was first dumped and had a "loader" (quotes are deliberate), i had a face like this:

gimme.png

Then i tried to use it. The "loader" is a joke and it serves no purpose other than to be a sort of hacked together front end. I spent weeks trying to get it working right because i know how good the shmups are, but i got so irate at it all that i vowed never to touch it again till someone with better skills than I would do something about it.

 

And now here you are stigz. I knew it would be someone like you! :P I'm behind this onehunruh n ten persen!

 

I got Homura and Shikigami 3 working like a dream in the end, but the Raidens, PFFFT! had way over the ori specs but still ran like a dogs dinner, that a dog had eaten, thrown up, ate again and then threw up again. I ended up buying PC vers of Raiden IV coz i was so mad lol

 

Hence i have not touched this system since, which was over 2 years ago if i recall, but man kudos to you for taking this on B)

  • Thanks 1
Link to comment
Share on other sites

12 minutes ago, stigzler said:

Cheers chap. I'll have you up and running in no time. Even with Otomedius (the Japanese have some baffling cultural memes)

I gather you meant something like insomnia, sleep deprivation, working too hard etc but you literally just said 'vampire' lol Might be time to recharge ye ol batterisms eh? :P

Link to comment
Share on other sites

Urgh. I neeed sleeeeep!

Alpha Release 0.9

But! Calling all geezers! Got it up and running for all TaitoTypeX games. Now needing a little help/feedback from the GameEx team! That means you:

@Tom Speirs @headkaze @tthurman @Adultery @DazzleHP @RedDog @greatflash @hansolo77 @RIP-Felix @ClassicGMR @KRC

@Draco1962 has stepped up already and is getting the stall set out as we speak!

Anyways enough of the enthusiasm, it's exhausting. If anyone could help out, that'd be grand. What would be helpful:

  • Feedback on how easy it is to use (there's a help guide built into the app)
  • Someone have a look through the Assets directory and see if they spot any naughty files.
  • At some point, looking to to get some project members together to catalogue good and bad exes. 
  • Any other suggestions/knowledge that I may have missed. 

Any bug reports/feature suggestions would be helpful posted here

You can download the Alpha here

Of course, a house is only ever as good as the foundations you build it from if you catch my drift. 

Happy for pms around other issues. ;)

  • Like 1
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
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...