Jump to content
tschak909

#FujiNet Programming Challenge. convert existing game to #FujiNet - Oil Wells

Recommended Posts

#Atari8bit Now that the handler and networking code works well enough for use in making games, we need to try and convert an existing turn based game to play over the #FujiNet. Here, is a potential competitive turn based game based on drilling oil wells.

 

Share this post


Link to post
Share on other sites

Looks like it would be a fun project... though I may need to get a second FujiNet for one of my other Atari’s for testing :) We are in the middle of a good snow storm here in New England, so a perfect time for 8 but hacking. 

 

One sort of off topic question, did you speed up the disk accesses (mounting the tnfs servers and showing files, copying the disk, loading the basic program)? It seemed much faster than when I use mine. The WiFi access point is about 5’ from the FujiNet so I’m assuming signal isn’t the issue. Just curious. 

Share this post


Link to post
Share on other sites

@tsom if you can't get one, then you can simulate the "other side" with python, just use $9B for a line ending. :)

 

If you have a U1MB or a HSIO patched OS rom, FujiNet can use it to speed up SIO accesses for all of its virtual devices.

 

I am preparing a notes sheet for variables and program structure, will post shortly.

 

-Thom

Share this post


Link to post
Share on other sites
Oil Wells Variables:

RX = X Center of oil hot spot
RY = Y center of oil hot spot

(3,14) arrays are four players of 15 weeks of data, so:

X(3,14) - The X position of well for player and week
Y(3,14) - The Y position of well for player and week
D(3,14) - The color of well at this position (0-3)
T(3,14) - Taxes for well for player and week
BL(3,14) - Income for well for player and week
COST(3,14) - Cost of each well for player and week
PL(3,14) - Profit and loss values

C(3) - Total profit for each player.

These are only used during the final map drawing, to fully render out the diffusion map.
SX(30) - Plot X
SY(30) - Plot Y
SC(30) - Plot Color

LOCO(20) - Used for cursor location during portfolio well selling.

A$ - Player 1 name (7 chars)
B$ - Player 2 name
C$ - Player 3 name
D$ - Player 4 name

Program routines:

100 - Program start. Define variables, open keyboard.
700 - Clear screen, Get players, go
1000 - Game main loop.
2000 - Map of game played after game ends
3000 - calculate oil probability at X,Y relative to hot spot RX,RY
4000 - The oil derrick display.
5030 - Drilling
6000 - we hit oil
9000-9050: Clear oil field, generate new hot spot values in RX,RY
10000 - scoreboard display, uses PEEK(741,742) to modify display list.
11000 - Portfolio display
20000 - Well Depreciation modeling

 

Share this post


Link to post
Share on other sites
27 minutes ago, tschak909 said:

@tsom if you can't get one, then you can simulate the "other side" with python, just use $9B for a line ending. :)

 

If you have a U1MB or a HSIO patched OS rom, FujiNet can use it to speed up SIO accesses for all of its virtual devices.

 

I am preparing a notes sheet for variables and program structure, will post shortly.

 

-Thom

Ah ok, cool. That could work. And that makes sense about the speed issues. I'm using on stock 800xl/130xe.

 

(and it's not that I "can't" get one, I just haven't ordered another ;)  (Do I really need one for each system (4 in total), no probably not, but "need" really doesn't enter in to it)

 

Thanks.

ps. Following the directions to get a copy of the .atr brought up a feature that would be cool - the ability to "move" a disk image from one drive slot to another. Now I have to eject both disks, then go back and find the one I mounted in D2 and re-mount it in D1. Would be nice to be able to just say "move the disk in D2 to D1". Just a nice to have.

Edited by tsom
  • Like 1

Share this post


Link to post
Share on other sites
22 hours ago, tsom said:

ps. Following the directions to get a copy of the .atr brought up a feature that would be cool - the ability to "move" a disk image from one drive slot to another. Now I have to eject both disks, then go back and find the one I mounted in D2 and re-mount it in D1. Would be nice to be able to just say "move the disk in D2 to D1". Just a nice to have.

i second this. swap images/disks would be very handy indeed. When swapping mounted slot with not mounted slot you simply move the mounted disk to desired location. This is probably not the right thread for FN improvement ideas, but i'll add two more anyway :)

 

1) can we please get basic on/off switch with a push of a key in FN menu? - It's few lines of code. Since Basic is enabled by default on stock XL, and most of the programs do not require it, one need to hold Option key pressed for quite a long time if there are few atr images mounted. Sometimes it takes 30-60 seconds in my case.

 

http://www.wudsn.com/index.php/productions-atari800/tutorials/tips

 

 

2) would it be possible to increase number of hosts? With the growing number of publicly available hosts, the list gets full quite fast and one needs to remove some hosts in order to try new ones out.

 

to all Fujinet developers: you are doing amazing work. keep it up! :)

 

Marco

 

Edited by mchorvat

Share this post


Link to post
Share on other sites
7 hours ago, mchorvat said:

i second this. swap images/disks would be very handy indeed. When swapping mounted slot with not mounted slot you simply move the mounted disk to desired location. This is probably not the right thread for FN improvement ideas, but i'll add two more anyway :)

 

1) can we please get basic on/off switch with a push of a key in FN menu? - It's few lines of code. Since Basic is enabled by default on stock XL, and most of the programs do not require it, one need to hold Option key pressed for quite a long time if there are few atr images mounted. Sometimes it takes 30-60 seconds in my case.

 

http://www.wudsn.com/index.php/productions-atari800/tutorials/tips

 

 

2) would it be possible to increase number of hosts? With the growing number of publicly available hosts, the list gets full quite fast and one needs to remove some hosts in order to try new ones out.

 

to all Fujinet developers: you are doing amazing work. keep it up! :)

 

Marco

 

Since we're hijacking a topic, Can some people check out the config repository and start adding features? :)

https://github.com/FujiNetWIFI/fujinet-config

 

-THom

Share this post


Link to post
Share on other sites

Am I mis-remembering, didn’t you put out a video on how to build and test the Config app? Would like to give it a try...

Edited by tsom

Share this post


Link to post
Share on other sites
17 minutes ago, tsom said:

Am I mis-remembering, didn’t you put out a video on how to build and test the Config app? Would like to give it a try...

there's not much to it, you just need:

* GNU Make
* A copy of CC65 (http://github.com/cc65/cc65)
* some sort of POSIX environment, e.g. Linux, Mac OS X, or Windows Services for Linux.

 

To build

* clone it

* make && make dist

 

You'll get an autorun.atr that you can load and test.

 

If you want to flash it onto your device, you'll need to follow the board bring-up instructions in the Wiki:

https://github.com/FujiNetWIFI/fujinet-platformio/wiki/Board-bring-up-for-FujiNet-Platform.IO-code

 

copy autorun.atr to the data/ folder, overwriting the autorun.atr, and use the build and upload filesystem task in platform.io to upload it to your fujinet.

 

-Thom

 

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, tschak909 said:

there's not much to it, you just need:

* GNU Make
* A copy of CC65 (http://github.com/cc65/cc65)
* some sort of POSIX environment, e.g. Linux, Mac OS X, or Windows Services for Linux.

 

To build

* clone it

* make && make dist

 

You'll get an autorun.atr that you can load and test.

 

If you want to flash it onto your device, you'll need to follow the board bring-up instructions in the Wiki:

https://github.com/FujiNetWIFI/fujinet-platformio/wiki/Board-bring-up-for-FujiNet-Platform.IO-code

 

copy autorun.atr to the data/ folder, overwriting the autorun.atr, and use the build and upload filesystem task in platform.io to upload it to your fujinet.

 

-Thom

 

Trying to get this set up. Some notes.

I'm using cc65 installed via Homebrew.

The make functions are dependent on having https://github.com/FujiNetWIFI/fujinet-config-tools downloaded.

Also needs a command line dir2atr program installed.

 

However I'm having issues getting the configuration (c_cpp_properties.json) configured to use MacOS and Homebrew. The build commands and paths assume Windows install of cc65. Still working on it, will report in when/if I get it working.

 

For what it's worth, here's the edits to the config files to get it to build using Homebrew installed cc65:

 

c_cpp_properties.json:

{
    "env": {
        "cc65_home": "/usr/local/Cellar/cc65/2.19"

    },
    "configurations": [
        {
            "name": "Atari 8-bit",
            "includePath": [
                "${cc65_home}/share/cc65/**",
                "${workspaceFolder}/**"
            ],
            "defines": [
            ],
            "compilerPath": "${cc65_home}/bin/cc65",
            "cStandard":"c89",
            "cppStandard":"gnu++98",
            "intelliSenseMode":"gcc-x86"
        }
    ],
    "version": 4
}

 

tasks.json:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "GNU Make CC65",
            "type": "shell",
            "command": "/usr/bin/make",
            "args": [
                "all"
            ],
            "options": {
                "cwd": "${workspaceFolder}",
                "env": {
                    "CC65_HOME": "/usr/local/Cellar/cc65/2.19"
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        }
    ]
}

 

Edited by tsom
  • Thanks 1

Share this post


Link to post
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...