Jump to content
IGNORED

Can Stella output a stand-alone executable? Or could it?


quohog

Recommended Posts

Can Stella output a bundled executable that would run your .bin game file, wrapped up with Stella, in a standalone .exe file, or whatever it's called on your target platform?

And if it can't, wouldn't that be cool? For sharing your homebrew games with your less technical friends and family. The ones who could never figure out how to download and install Stella. You could just send them an executable and say, "Here, run this!" And it would just work. 

Maybe I'm missing another more obvious solution. Is there an easier way to share your games with people who don't have Stella or a Harmony cart?

I think you could do this with Javatari online, and running in a browser is super cool and accessible, but javatari only works with joystick or paddle controls which doesn't work for my keyboard controller game.

Just floating that idea out into the land of wishes. Cool idea or uncool? Or does it already do this?

  • Like 1
Link to comment
Share on other sites

7 hours ago, quohog said:

Can Stella output a bundled executable that would run your .bin game file, wrapped up with Stella, in a standalone .exe file, or whatever it's called on your target platform?

 

You could do this very easily by compiling the emulator with the ROM binary embedded in the emulator source. The emulator would then  use the embedded data instead of asking for a file to load. To be clear, I don't think the Stella source is set up to do this just yet but in principle it's very easy.

 

Gopher2600 is already set up to do this but I've not pursued it because the emulator hasn't even reached v1.0 yet.

 

The alternative method, which I think you're asking for, is for the Stella to output a Windows binary without having to recompile the source. It would be possible, with some work, for Stella (or Gopher2600 or any other binary emulator) to be set up like that but frankly, producing a Windows binary in this way would be full of pitfalls that I wouldn't want to tackle.

 

Regardless, for easily distributing to friends and family, the Web is probably the easiest. So as @Gemintronic says, Javatari would be even better.

 

  • Like 2
Link to comment
Share on other sites

There are ways to make web based apps look like a native app, but..

 

Javatari does not attempt to obfuscate the ROM at all.  So, if you don't want people making unauthorized reproductions you're out of luck.

 

I'll definitely look forward to wrapper functionality in Gopher2600 - especially if the ROM can't be reconstituted easily.

Link to comment
Share on other sites

1 hour ago, Gemintronic said:

.... especially if the ROM can't be reconstituted easily.

I may be wrong, but since Stella and Gopher2600 are both released under the GPL license (v2 and v3 respectively), I believe that if you embed your rom into the emulator, you must release your game under the same license, that means that not only your rom cannot be obfuscated, but that you have to release the source code for it as well.

license.thumb.png.ba6596ccba493c12e6d0f275e6d4a19e.png

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

2 hours ago, alex_79 said:

I may be wrong, but since Stella and Gopher2600 are both released under the GPL license (v2 and v3 respectively), I believe that if you embed your rom into the emulator, you must release your game under the same license, that means that not only your rom cannot be obfuscated, but that you have to release the source code for it as well.

license.thumb.png.ba6596ccba493c12e6d0f275e6d4a19e.png

We may both be wrong.  GPL 3 has always been hard for me to interpret.

 

That being said: the compiler and source code used in your 2600 game is completely different than Gopher2600.  You are not modifying Gopher2600 in any way - merely using a (potential) feature of Gopher2600.

 

Of course, all bets are off if you personally add the wrapper function to Gopher2600.  I was talking in the fantasy world where JetSetIlly has already added the .exe wrapper functionality.  Didn't make that clear.

Link to comment
Share on other sites

I believe he is saying that if you integrate the ROM into the Stella source, then it is subject to the GPL, but creating an installer that installs Stella and your ROM (and, presumably, a launcher that launches Stella with the command-line options to start your game). It's just not a feature that will be built into Stella. Of course, if you distribute Stella in any manner, you are responsible for distributing it with the licence information, etc. And if you do modify Stella, you are responsible for providing the source of those changes.

 

As a disclaimer, I am neither a lawyer nor a Stella dev. 

  • Like 1
Link to comment
Share on other sites

Using a BAT file in Windows is the easiest solution.  I can confirm that anything that is included in the source, and is then required to re-build the project, has to take on the same license as Stella (aka, GPLv2).  So it's best to keep the Stella binary and the ROM binary separate.  After that, you can package it however you like; it is beyond the scope of Stella's licence at that point.

  • Thanks 2
Link to comment
Share on other sites

1 minute ago, stephena said:

Using a BAT file in Windows is the easiest solution.  I can confirm that anything that is included in the source, and is then required to re-build the project, has to take on the same license as Stella (aka, GPLv2).  So it's best to keep the Stella binary and the ROM binary separate.  After that, you can package it however you like; it is beyond the scope of Stella's licence at that point.

 

GPLv2 compatible. So a ROM released under the Modified BSD licence for example, would be fine because that is compatible with the GPLv2.

 

Link to comment
Share on other sites

6502ts/Stellerator and BizHawk with the Atari2600Hawk core both use the MIT license.  So, those might have more flexible conditions depending on the use case. 

 

Pending that there's always contacting the developers and working something out.  I've bothered Paulo Peccin (Javatari) in the past and he's been super awesome.

 

https://github.com/6502ts/6502.ts

 

https://github.com/TASEmulators/BizHawk

  • Like 1
Link to comment
Share on other sites

4 minutes ago, Gemintronic said:

6502ts/Stellerator and BizHawk with the Atari2600Hawk core both use the MIT license.  So, those might have more flexible conditions depending on the use case.

 

And GPL projects can be dual licenced if all copyright holders agree.

  • Like 1
Link to comment
Share on other sites

  • 4 months later...
On 1/11/2022 at 8:42 PM, quohog said:

Can Stella output a bundled executable that would run your .bin game file, wrapped up with Stella, in a standalone .exe file, or whatever it's called on your target platform?

And if it can't, wouldn't that be cool? For sharing your homebrew games with your less technical friends and family. The ones who could never figure out how to download and install Stella. You could just send them an executable and say, "Here, run this!" And it would just work. 

Maybe I'm missing another more obvious solution. Is there an easier way to share your games with people who don't have Stella or a Harmony cart?

I think you could do this with Javatari online, and running in a browser is super cool and accessible, but javatari only works with joystick or paddle controls which doesn't work for my keyboard controller game.

Just floating that idea out into the land of wishes. Cool idea or uncool? Or does it already do this?

Very cool idea! :) Game Loader outputs standalone executables like this for the Commodore 64.

C64 Atari2600 Cross Compiler - Commodore 8-bit Computers - AtariAge Forums

 

The Game Loader emu recompiles the source with the VM like @JetSetIlly described.

 

This emu also surfaces PETSCII graphical skins on Atari games by using an extra chip the VM has available, the VIC-II.

 

The Commodore graphical skins can be configured as options and static bound to the standalone executable or used programmatically to write enhanced Atari 2600 games or even "fat binaries" with extra features when played on the C64.

 

Cathode_Ray_Tube.jpg.2e4771a284a8cc4f16dd1be23c538436.jpgCommodore_VIC_II.jpg.0a425a34a7499141ab030583b38b2403.jpgRayGun.jpg.50d50ed10839ea4c2050201e20fb903f.jpg

 

The Television may be the hardest to emulate for PC based emulation and the VIC-II has an edge racing the beam natively with this emu. The tight beam coupling in the VIC-II and source recompiling make it possible to emulate 1 Mhz hardware on 1 Mhz hardware. You can see the screen roll when crashing the Light Cycle on the real hardware with a Cathode Ray Tube.

 

  • 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.
Note: Your post will require moderator approval before it will be visible.

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.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...