News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_abalore

AMSTEAM: WIP game streaming service for the Amstrad CPC

Started by abalore, 13:56, 09 March 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

abalore

Hello, I'm presenting my Amstrad CPC online games service. Based on my WiFi board.

HELP WANTED: IF ANYONE WANTS TO CONTRIBUTE TO THE GAME LIBRARY, just provide me with a binary file of the game (without AMSDOS headers), the loading and execution address, and a thumbnail image of 32 x 48 mode 0 pixels. It would be greatly appreciated. IMPORTANT: No crack loaders or cheat screens, just the plain original game.

I'm attaching a list of the games I would like to include in the library in the first slice.



abalore

The collection keeps growing. Thanks to the people who contacted me to collaborate. To encourage collaborators, I'll give:

- Early access to whom adds at least 1 game
- Free SPI+WiFi card to whom adds 5 or more games, limited to 4 units by now (I don't have more). Shipping not included

I'll remember the requisites:

- Each game can have one or several binaries, all with an address to load to, i.e.: Aliens loads the game at &0040 and preloads the UI at &C000, they can be two separate files.
- An entry point address must be provided, the address where the game is executed.
- No loading screens, intros or cheat screens must be included, just the game.
- No binaries taken from snapshots, because they miss the initialisation code and don't represent the initial state of the game

Greetings!
Abalore





eto

what's the format of the thumbnail and how do you deal with different palettes?

what games do you already have?

Nich

Quote from: abalore on 17:07, 10 March 24I'll remember the requisites:

- No loading screens, intros or cheat screens must be included, just the game.
What if the loading screen and the game could be compressed into a single binary file? The loading screen is displayed for a few seconds and then the game is decompressed and executed. Is this not feasible?

abalore

Quote from: Nich on 18:14, 10 March 24
Quote from: abalore on 17:07, 10 March 24I'll remember the requisites:

- No loading screens, intros or cheat screens must be included, just the game.
What if the loading screen and the game could be compressed into a single binary file? The loading screen is displayed for a few seconds and then the game is decompressed and executed. Is this not feasible?
Hello, the reason to not do that is because I will show the loading screen in another way, directly in the Amsteam browser before launching the game. There are a number of reasons for that, like having an area in the site to just watch loading screens, and be able to place small menus on top of the screens, for instance to choose part 1 or 2, and that kind of stuff

abalore

Quote from: eto on 17:13, 10 March 24what's the format of the thumbnail and how do you deal with different palettes?

what games do you already have?
Hello, I have the games shown in the last picture I sent only.

The thumbnail format is now, after some restyling, 11x7 mode 1 characters, this is 44x56 mode 0 pixels.

Thumbnail is provided in a PNG, in either double or single width pixels, it's the same for me.

The palettes are all automatically adapted to a standard one, exactly the palette from Alcon2020 :D, but that's ok, colors may vary a bit but enough good for a thumbnail.

abalore

Also, mode 1 thumbnails will be lineary interpolated instead of stretched like in the previous post. After doing several tests, I think it's better.


dodogildo

That seems a great project! Any chance it would work with other wifi enabled carts? (such as m4)
M'enfin!

abalore

Quote from: dodogildo on 19:55, 10 March 24That seems a great project! Any chance it would work with other wifi enabled carts? (such as m4)

Hello, that's a very good question. Without knowing 100% the API of the other hardware, I think it is doable to access the service if someone creates the required browser, in either a ROM firmware or a normal app. It's not in my plans to do it for other hardware than my own card, but I can provide the required information to any serious developer that wants to get involved.

There are several reasons to not do it myself for other cards, mainly the lack of time, and secondly to avoid being flooded with problems about hardware that I don't know well. I can give a support for the SPI + Wifi + Amsteam package, because it's all of my own.

abalore

@eto provided the following games, so the first SPI + WiFi card is granted

Chuckie Egg
Space Harrier
1942
Antiriad
Druid
GhostsnGoblins
Light Force
Impossible Mission
Airwolf 2
Bmx Simulator
Gothik
Motos 
Feud 
Solomons Key
head over Heals
XOR 
Zynaps

XeNoMoRPH

your amstrad news source in spanish language : https://auamstrad.es

eto

Quote from: XeNoMoRPH on 10:39, 11 March 24@eto is on fire !!! :o :o :o
just a side effect of a personal project where I did exactly what is now needed by Abalore ;-)


overange

Make a Cartridge based version for the GX4000 and Plus systems and you WILL sell a massive amount of those WIFI enabled carts.



Current Usable Collection = 800XL / XE Remake / 1100 Drive / Sinclair ZX Spectrum 48k ( Rubber Key ) / Sinclair ZX Spectrum Harliquin 128k ( Rubber Key ) / Amstrad CPC6128 Plus / Amstrad GX4000 / Sega Master System / Sega Mega Drive / Nintendo DMG-01 Gameboy / Amiga CD32 / AMSTRAD MEGAPC 386SX and possibly the UKs largest Collection of Competition Pro Joysticks, so far 40 different variations and always looking for more

abalore

Quote from: overange on 11:14, 11 March 24Make a Cartridge based version for the GX4000 and Plus systems and you WILL sell a massive amount of those WIFI enabled carts.





It is in fact, Amsteam works along with Play2CPC to either run cartridge games in VROM or to save to rewritable cartridges. So a user with SPI+Wifi and Play2CPC can write cartridges from Internet to play on GX4000, or play directly without saving in Plus or normal CPC. So PLay2CPC board is required to access the 512K games catalog :D

abalore

@trocoloco contributed with another lot of games, second card granted

Prohibition
Donkey Kong
Exolon
Cosmic Sheriff
La diosa de Cozumel
Capitan Sevilla
Carvalho
Cauldron
Cauldron II
Chichen Itza
Chuckie Egg
Space Harrier
1942

And others under review now

Prodatron

That's a great project and very useful! And it is loading so fast! :o
I wonder if the binaries and thumbnails/infos are just stored on an HTTP server, or is the server side something special?
Are there any limitations for the binaries which memory areas they are occupying during loading?

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

abalore

Quote from: Prodatron on 11:40, 11 March 24That's a great project and very useful! And it is loading so fast! :o
I wonder if the binaries and thumbnails/infos are just stored on an HTTP server, or is the server side something special?
Are there any limitations for the binaries which memory areas they are occupying during loading?

About the server: it's a custom app, done in C#, using an also self-made network library. It behaves like a highly downgraded HTTP server allowing text, images, text input and line drawing. Most of the formatting is done by just sending Amstrad CPC control codes.

About the memory limitations: The Amsteam browser runs in ROM and uses a very small amount of RAM located in the stack area (&BF80), just to store the loading address, the execution address and a very small relocated loader, so it's unlikely it will interfere with any game loading. I'm also studying the possibility of using zero RAM by storing data in the WiFi module unused fields.

cwpab

It took me a while to understand that this is accessed from the CPC and you need a Wi-Fi card.

How can you buy one of those Wi-Fi cards and how much do they cost, by the way?

dodogildo



So the success of this project would be based on the number of your own wi-fi cards sold (or gifted)?
That's quite a bottleneck. 
::)
M'enfin!

abalore

Quote from: dodogildo on 19:10, 11 March 24the success of this project

This project is a success already, because for me the success is to do it.

abalore


Prodatron

Quote from: abalore on 19:18, 11 March 24This project is a success already, because for me the success is to do it.
That is true! This project is fantastic!
I still wonder if you will do a documentation how to download the index and thumbnails and then the binary files. Or you will sell the network card in a big way, but as you don't like this, I wonder if another one could produce it?

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

abalore

Quote from: Prodatron on 21:58, 11 March 24
Quote from: abalore on 19:18, 11 March 24This project is a success already, because for me the success is to do it.
That is true! This project is fantastic!
I still wonder if you will do a documentation how to download the index and thumbnails and then the binary files. Or you will sell the network card in a big way, but as you don't like this, I wonder if another one could produce it?


The wifi module still needs some refinement, for some reason it refuses to connect to some access points but work perfectly with others. When I manage to make it work with everything I'll think about the next step. In fact it works, but just don't receive the DHCP address, so you can still use it with fixed address. But that's ugly.

SyX

Looks a nice project! :)

I am interested in a few details. 

First, the exactly definition of your game format, because I have a clean cracks hard disk installer project, similar to amiga whdload; and I can create a tool for converting games between my format and yours. 

In my case, in my game configuration file, I have included a section for patches and trainers, they are applied after the game is loaded. Because a lot of cpc software is plagued with bugs or because I am patching them to use the controls that you define in the configuration (playing Antiriad with keys or Renegade with three fire buttons joystick) or for saving hiscores, ...

Aside of that, how are you handling multiload games in your system? I imagine through the ROM, you have some CALLs for making those extra loads. As you can see, I am more interesting in your ROM API for compatibility than in your communication protocol.

And of course, is it going to be possible to download your game library? Because there is not a repository with clean cracks and it would be nice that this work can be used for the community. People could want to have a local server with his favorite game selection or simply install those in mass storage devices or ...

I think that is all for now :)

abalore

Hello, I'll try to clarify your questions one by one.

First, the exactly definition of your game format, because I have a clean cracks hard disk installer project, similar to amiga whdload; and I can create a tool for converting games between my format and yours.

 
Game                                      ; The whole game
        Title                                ; Title
        Title2                                ; Title second line for titles greater than 11 characters (because of browser layout)
        Developer                          ; Developer name
        Thumbnail                          ; Binary data to show the thumbnail
        Loading screen                   ; Binary data to show the loading screen before playing the game (not yet in the browser)
        Part                                   ; Because a game can have several parts, like Game Over, Army Moves, etc
              DataBlocks                   ; A list of datablocks to be loaded into RAM, i.e.: some games preload the UI in &C000
                      Data                    ; Binary data for each data block
                      Loading Address   ; For each data block
                                                 ; (Sometimes I add a custom extra datablock for setting inks, mode, etc, in games that require it)
              Execution address         ; Entry point for running the game, called with all ROMs disabled
              Patches                        ; A list of patches to apply before executing
                      Patch bytes
                      Patch address
              
In my case, in my game configuration file, I have included a section for patches and trainers, they are applied after the game is loaded. Because a lot of cpc software is plagued with bugs or because I am patching them to use the controls that you define in the configuration (playing Antiriad with keys or Renegade with three fire buttons joystick) or for saving hiscores, ...

As you can see, I have also the ability to apply patches before executing, i.e.: to fix Demon's Revenge bugs
But I'm not ok with offering trainers or cheats. At least not in Amsteam, probably in future I'll add a hook to make online hiscore tables.


Aside of that, how are you handling multiload games in your system?

I convert the DSK into CPR and run as cartridge (requires Play2CPC board or other way to emulate a cartridge, maybe a M4 can do it). First, I considered other options, like a DLC system, patched AMSDOS for remote filesystem, but discarded all of them, the DSK to CPR conversion is easy, fast and proven. Of course, also genuine cartridge games, like Alcon 2020, can be loaded and run.

I'm also considering to add my code from M4FE to the client to be able to write physical disc from remote DSK. But it's controversial stuff, because the point of the whole system is to run games online instantly getting rid of physical support, and also keep the system simple and reliable for the users.

And of course, is it going to be possible to download your game library? Because there is not a repository with clean cracks and it would be nice that this work can be used for the community. People could want to have a local server with his favorite game selection or simply install those in mass storage devices or ...

I don't have an endpoint for downloading the game binaries or metadata, because the requests are not from client to server, but viceversa. The CPC client is dumb and only sends U, R, L, D, OK and BACK, because I want to mimic the interface from TV streaming services based in remote control. In theory it's possible to do an application in a PC to download the games, but without a visual interface to see the game you have selected it is a shot in the dark.

If you agree we can share a Google Sheets document or similar, with all the metadata and links to Google Drive files. It would be good to share the same format, I can easily adapt my code since it's still in development.

Final words: I would like Amsteam to be a public service for all Amstrad users, always updated, good UX, all the content tested. A problem I found in massive storage devices is that you need to continuously update them to have the latest, the online service will get rid of that. Local storage systems are also unreliable, since not all games work on them. And they are not very user friendly, I did my best to create M4FE to do the M4 experience better, but still think the online service and getting rid of physical supports is the trend in XXI century :D

That's all, good luck with your project.

Powered by SMFPacks Menu Editor Mod