AmiDARK / AmosProfessionalUnity-Official-Releases

17 stars 0 forks source link

Re-compile AMCAF for Unity Compatibility #9

Open HoraceAndTheSpider opened 2 years ago

HoraceAndTheSpider commented 2 years ago

I know we've covered this a few times, but i am still a bit confused as to what the end result is!!

I am trying to port one of my old games to AMOS Unity but i have such a heavy reliance on AMCAF it is proving difficult.

Could you let me know whether it will be possible to recompile the AMCAF extension for compatibility, or if all the commands need to be re-baked into a new extension / within Unity?

Some extra comments / notes about the sort that are used

Thanks for your work on this

AmiDARK commented 2 years ago

Hello Horace and thank you for your question.

AMCAF extension contain several commands and the source code structure is slightly different from native Amos Professional 2.0 extensions ones. I was not able to recompile it even for Amos Professional 2.0 due to many compilation issues that should takes long time to check ... The only solution I can find should be to extract commands from the source code and create a new AMCAF Unity version from scratch. It will need some time and is not in the 1st position in my priorities (complete SAGA Chunky, 16 Bits 8 Channeld AUDIO, and PIP (when Available) support). String command should not be too long to port to Unity as they should not need much changes. Prepare a list of the important commands (sets) from AMCAF extension you may like to see ported firstly. And push it here.

HoraceAndTheSpider commented 2 years ago

No problem - I've made a list here and priorities 1-5 (1 = top, 5 = lowest)

https://www.dropbox.com/s/3rag46z49ditrrl/amcaf-commands.xlsx?dl=0

I've put comments against most, and so there are groups you could work from (joystick functions, bank handling, file handling etc)

I've also had a thought and there is likely some function cross-over with TURBOplus and ERCOLE and maybe other extensions. Where these occur to me i will add notes in a later column.

There may be some functions in those extensions which are more useful to look at than the 'low priority' AMCAF commands (which could just have a dummy command in place temporarily) I dont know if you might have more success with compiling TURBOplus for Unity - in which case it might mean that some AMCAF commands are no longer required if they cover similar improvements.

In the case of TURBO (and partly with AMCAF) a number of the commands are deisgned to provide direct, more optimised, replacements of original commands. Useful ones include;

=Hit Spr Zone
=Hit Bob Zone
F Paste Icon
F 16 Icon

You could consider replacing some of those original AMOS commands directly with the improved replacements "under the hood", and have the new names simply for where the input parameters are different. (e.g. the AMCAF drawing routines include the INK value in them)

AmiDARK commented 2 years ago

Ok.

I've downloaded the xlsx of your list to keep it with my files. Concerning AMCAF, the author provided me a copy of the latest source code, so I can work on it. But concerning TurboPlus, I don't have the original source code.

I keep this ticket open to keep in mind the request to reboot AMCAF to Amos Professional Unity.

Regards,

AmitenTV commented 2 years ago

Hello ,

I also want to convert some of my Games to Amos Unity and AMCAF are need it for this , in my case I only use Music/Sound AMCAF and 2nd joystick button commands , that in my case are the only ones my games need it to be ported to Amos Unity ,

protracker music player Track load "music.mod",6 PT PLAY instruction: replay a module Pt Play bank Pt Play bank,songpos

sound FX Pt Sam Bank 5 PT SAM PLAY instruction: replay a sample from an amos sample bank Pt Sam Play samnr Pt Sam Play voice,samnr Pt Sam Play voice,samnr,freq

and 2nd Fire Buton XFIRE function: return the state of the fire buttons on a gamepad flag=Xfire(port,button)

Thanks

TjahziOFdahoo commented 10 months ago

Hello, forgive dear AmiDark for being on the subject of c2p again. If you could implement c2p even from the library c2plib.lha which can be downloaded from Aminet even as part of your Personal Unity [SpecialFX] eXtension. It would help me a lot in creating demos.

Greetings Tjahzi /un amor