Gotek drive replacement finally is installed

10 01 2016

Today I finally installed the Gotek disk drive replacement in my Falcon.

It fit’s damned nice into the Falcon. The colour fits much better than the floppy drive that was there before.

Advertisements




Maybe the last disk drive I ever used

10 01 2016

Today I removed the broken disk drive from my Falcon. It’s maybe the last disk drive I every used. So from 1986 untill 2016 I used disk drives or at least owned broken ones 🙂 30 years is a long time.

It begun with a Commodore 1541 5.25 inch floppy on a C64.

Next was a Atari SF354 Single Sided 3,5 inch floppy drive for the 520 STFM.

For the same computer I upgraded to a Atari SF 314 Double Sided floppy.

My Atari Falcon 030 came with a HD drive. I forgot all the PC 5.25 and 3.5 inch drives in between. I remember that I once bought an usb floppy drive for the PC.

The one I removed today was the 3rd floppy drive for the Falcon.

 





After about 20 years I removed the screeneye from my Falcon

10 01 2016

I got the screeneye camera capture card for the falcon a long time ago, but did not much with it. During the creation of Grenzüberschreitung, I got the idea to use it to make photos of people who want to participate before we start so that I have enough time to include them into the gamer database.

I did this 2-3 times and yes it worked, but it took ages to get the photos together, cut them into 20×20 pices in Rainbow II Multimedia and them transfer them into the gamer database.

Pep / SAK  later gave me a very small camera so I tested this again, but because with a handy nowadays everything is much faster, the screeneye wasn’t used since years.

The reason I removed it today was that I’m bored of have the cable in the way all the time I put my falcon out of the cuboard and back into it.

It will now go the way down in the cellar to be covered with dust. As far as I remember I also still have the original case.

 

 





USB Mouse adapter finally works

31 12 2015

I ordered a USB mouse adapter for my Falcon a while ago. At the STNICCC I wanted to test it, but I found out, that I ordered the Amiga version instead of the ST version. So I ordered the ST version and found out, that I bought the wrong mouse. I had to buy an Netscroll Mouse and bought a Netscroll 100. So again I ordered another mouse. This time a Logitech RX250.

And finally it works !!

Here the setup with a joystick extension cable. You could see the Mouse adapter in the middle.

Here the setup without the joystick extension. You could see, that the Mouse adapter is not visible, because its hidden under the Falcon.

So I archived that I now could use a “modern” USB mouse instead of my “oldfashioned” PS/2 trackball. Also this mouse is optical, so for the first time I use a mouse on my falcon without a ball.

Another wast of time and money comes to and end, and the setup is save back in the cupboard 🙂 Hauptsache es macht Spaß 🙂





The new Wikipad Android gaming tablet

24 09 2015

I got a new gaming tablet, a Wikipad. Cause I got a 50 Euro donation from my company, I bought it for 110 Euro on Amazon.

First Impression: It’s really huge, but the controller fits good in the hands. The screen is ok and the speed as well.

Second sight after installing some games. The pad has 1 GB of Ram, so some games will not install. But ok the device is 2 years old. Most of the games work and the ones who support controllers could be played ootb. A good choice so far

My favorit games so far:
– Active Soccer 2
– Reaper
– Heros of Loot
– Wayward Souls

Wikipad pictures





The evolution of controller simulation

28 03 2015

When you start writing a gaming framework that should be controlled by a Joystick, you will end up defining callback functions for the controller functions.

To simulate a controller you will also implement callback functions for keyboard clicks and map these keyboard callbacks to controller callback functions.
You start with writing 5 callback functions:

  • cursor up
  • cursor down
  • cursor left
  • cursor right
  • fire

This is a good start and works well. It’s like 1979 you could say. We use a Atari CX40 (I hate it, because I’m left hander) and we could map our 5 callback functions to the CX40 functionality:
The 4 direction callback functions could be simulated on the keyboard by cursor up,down,left,right. The fire button could be emulated by space:

  • up = cursor up
  • down = cursor down
  • left = cursor left
  • right = cursor right
  • fire = space

We could already warp to 1983. We now use a competition pro joystick and all buttons sendings their “power on” signal on one wire. Nothing has to change in our framework.

Next we warp to 1984. The Atari 7800 has a joystick, the Atari CX24, that has to 2 different buttons connected to independent wires.
In your framework code our simulation of the fire button with the space key will not work anymore. A good way to handle this evolution will be to use the y key to simulate button a and the x key to simulate button b. The new mapping now looks like this:

  • up = cursor up
  • down = cursor down
  • left = cursor left
  • right = cursor right
  • button a = y
  • button b = x

At the same time the joypads emerge into gamerworld thanks to the Nintendo Entertainment Systems.
To cover the start and select button we have to extend our set of callback functions to simulate them as well. The two windows key on the keyboard are good candidates for this task.
My thinkpad has the page up and page down key next to the cursor up key, they would fit perfect, but the majority of keyboards have a different design, so we implement the windows keys.

That result in the following mapping:

  • up = cursor up
  • down = cursor down
  • left = cursor left
  • right = cursor right
  • button a = y
  • button b = x
  • start = windows left
  • select = windows right

It’s warptime again and we land in 1990. Our Super Nintendo have 4 buttons and 2 shoulder buttons beside the standard direction pad. Our x,y key approach does not fit anymore.
For me to use 4 keys, its more intuitive to go to the middle row on the keyboard instead of extend the use of the bottom row on the keyboard (c,v key), so the 4 buttons are a,s,d,f

Update 2: It was to early when I wrote it. If cause it hast to be w,a,s,d.

Update 3: First tests shows, that now that the x and y keys are free again, the start and select callbacks could be mapped to these keys 

The shoulder buttons will be strg left and strg right. The mapping now looks like this:

  • up = cursor up
  • down = cursor down
  • left = cursor left
  • right = cursor right
  • button up = w
  • button right = d
  • button down = s
  • button left = a
  • start = x
  • select = y
  • shoulder left = strg left
  • shoulder right = strg right

Last warp so far goes to 1994. We all have a playstation and use the psx pad. It adds 2 more shoulder buttons and rearange the should buttons to L1,L2,R1,R2. it also adds 2 analog sticks LS and RS. You could also press this sticks (L3,R3)
The new shoulder buttons (L2,R2) will be simulated by “alt left” and “alt right”.
The sticks are a challenge. My first idea is to simulate them with the number keys. 1-5 for the left stick and 6-0 for the right stick.

Update 1: Thanks to EarX / Linout we must warp to 2006 cause the L3 and R3 Button was not present on the PS2 but on the PS3. 

That a huge change to our framework and ends up in these mapping:

  • up = cursor up
  • down = cursor down
  • left = cursor left
  • right = cursor right
  • button up = w
  • button right = d
  • button down = s
  • button left = a
  • start = x
  • select = y
  • L1 = strg left
  • L2 = alt left
  • R1 = strg right
  • R2 = alt right
  • LS up = 1
  • LS down = 2
  • LS left = 3
  • LS right = 4
  • LB = 5
  • RS up = 6
  • RS down = 7
  • RS left = 8
  • RS right = 9
  • RB = 0




Atari cross compiling

4 10 2014

Today I had a small coding sprint to find out if I could compile assembler code and embed it in a C programm.

The sprint was successfull thanks to the work of:

  • saulot/nokturnal : created 2 articles about using gnu assembler and using virtual assembler to do the task.
  • Vincent Rivière’s: He created a tool chain for cross compiling for the Atari
  • Hatari team: I used the Hatari 1.8 Emulator to test the result

But I had some problems. The main one was that I forgot the leading tab or blank in the vasm assembler file, so I alsways got an error, that the memnonic was not found. Insane / .tSCc. helped me to find this minor error, thanks to him as well.

I also had think, that a complette example would be a great enhancement of soulot’s howto. So I put this example for both assembler in this article. First we setup our cross compiling environment.

Download and install tool chain

http://vincent.riviere.free.fr/soft/m68k-atari-mint/

Download and install Virtual Assembler

http://sun.hasenbraten.de/vasm/

Download and Install Hatari

Here a link to a former article of mine, which is still valid (beside the version numbers)
https://thornstot.wordpress.com/2014/01/23/hatari-1-7-installed-under-ubuntu-13-10/

GNU Assembler example

Link to soulots article: http://bus-error.nokturnal.pl/tiki-read_article.php?articleId=2

C Header: ex_gas.h

#ifndef PLUS_H
#define PLUS_H ;we want to include header once
#ifdef __cplusplus
extern "C" {
#endif
long plus(long a, long b);
#ifdef __cplusplus
}
#endif
#endif

C Code ex_gas.c

#include "ex_gas.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
int a=0;
a=plus(2,1);
puts("Hello, world !");
return 0;
}

Assembler code ex_gas.s

 .globl _plus
_plus:
move.l 4(sp),d0
add.l 8(sp),d0
rts

Assemble
m68k-atari-mint-gcc -c ex_gas.s -Wa,-S -o ex_gas.o

Compile
m68k-atari-mint-gcc ex_gas.c ex_gas.o -o ex_gas.tos

 

Virtual Assembler example

Link to saulots article: http://bus-error.nokturnal.pl/tiki-read_article.php?articleId=1

C Header ex_vasm.h

#ifndef PLUS_H
#define PLUS_H ;we want to include header once
#ifdef __cplusplus
extern "C" {
#endif
void hello();
#ifdef __cplusplus
}
#endif
#endif

C Code ex_vasm.c

#include "ex_vasm.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
int a=0;
hello();
puts("Hello, world !");
return 0;
}

Assembler code ex_vasm.s

Do not forget the leading tab in front of XDEF 🙂

 XDEF _hello
_hello:
movem.l d1-d2/a0-2,-(sp)
move.l #hi_msg,-(sp)
move.w #$09,-(sp)
trap #1
addq.l #6,sp
movem.l (sp)+,d1-d2/a0-2
rts
hi_msg:
dc.b "Hi from 68k!",$0d,$0a,$00

Assemble

vasmm68k_mot ex_vasm.s -Faout -quiet -x -m68000 -spaces -showopt -o ex_vasm.o

Compile

m68k-atari-mint-gcc ex_vasm.c ex_vasm.o -o ex_vasm.tos