Translate

domingo, 15 de septiembre de 2019

Autor de juegos Richard Marks

Otro buen personaje con muchos juegos creados es: Richard Marks
En su pagina web nos muestra sus creaciones y cursos como

C-64 Game Development Tutorial en su antigua web ya casi perdida Aqui


La cual tratare de rescatar, aun no tengo el permiso, aun contactando al autor....

Después del permiso la traduciré

Juego de aventuras: Islandad venture


Richard Marks - www.ccpssolutions.com, May 16, 2009

Welcome to my Commodore 64 Game Development Tutorials!

I am going to be using the VICE x64 emulator, though you can use any Commodore 64 emulator or even the real hardware if you have it!
In this first article, we are going to cover the most basic of BASIC tasks...a bouncing ball demo.
The C64 after I just turned it on.

The Program Layout

We are going to layout our programs in the following manner:
  • Header
  • Program Init
  • Main Loop
  • Sub Routines
I want to be consistent in all my articles, so I have created a 9-line header that I will use to start all my programs in this series.
1 REM C-64 GAME DEVELOPMENT TUTORIALS
2 REM BY RICHARD MARKS
3 REM CCPSCEO@GMAIL.COM
4 REM WWW.CCPSSOLUTIONS.COM
5 REM *******************************
6 REM *
7 REM * THE BASIC BOUNCING BALL
8 REM *
9 REM *******************************
                
Another consistency that you will notice as I write these programs, is except for this header, all comments will be on an odd-numbered line, and all code will be written in line number increments of ten starting from 100.
Lets look at the code for the program initialization to see what I am talking about.
99 REM *** PROGRAM INIT ***
100 SC=1024:BG=6
110 BX=20:BY=11
120 DX=1:DY=1
130 POKE 53281,BG:PRINT "{SHIFT+CLR/HOME}"
                
You see that I add my program section comment on the line number preceding the first line of code (number 100 like I said before)
The lines after the section comment are increments of ten. 100, 110, 120, etc...

The Program Design

Now, lets talk a little about what our program will do.
Our demo is going to be very simple so that you can follow it easily.
Here is the program logic:
Flowchart for Program Logic
If you are not familiar with flowcharts (which is what that funny diagram above is) then lets go through it step by step.
Follow the arrows from each step...
  1. START This is where the program starts executing when the user RUNs the program.
  2. INITIALIZE PROGRAM VARIABLES This is where we give the initial values to the variables that we will use in our program.
  3. SET SCREEN COLORS We change the color of the screen and border here.
  4. CLEAR SCREEN We clear the entire screen of all characters at this point.
  5. RUN/STOP PRESSED? Here we have a dummy condition because our program will run indefinitely until the user hits the RUN/STOP key. This is a conditional block. If the result of the condition test is YES then we will follow the arrow down to the next step.
  6. END Here is where our program is no longer running. We are back in the C64 BASIC INTERPRETER at this point.
  7. DRAW BALL We get here if the RUN/STOP condition test result was NO. We draw the ball on the screen here.
  8. WAIT A SHORT TIME We are using a simple FOR-NEXT LOOP DELAY here.
  9. ERASE BALL We erase the ball from the screen to achieve the effect of motion.
  10. UPDATE BALL POSITION We add the ball delta values to the ball's position to obtain the new ball position.
  11. BALL X OUT OF BOUNDS? Another condition test. We want to know if the X position of the ball has reached either the left or right edges of the screen. If the result of the condition test is YES then we will follow the arrow down to the next step.
  12. INVERT X DELTA A simple inversion of our ball's delta X will make it seem to bounce off the edge.
  13. BALL Y OUT OF BOUNDS? Another condition test. We want to know if the Y position of the ball has reached either the top or bottom edges of the screen. If the result of the condition test is YES then we will follow the arrow down to the next step. If the result is NO, then we return to the RUN/STOP PRESSED? condition test to complete the loop.
  14. INVERT Y DELTA We get here in two ways. After the previous step finishes, or if the BALL X OUT OF BOUNDS? condition test result was NO. A simple inversion of our ball's delta Y will make it seem to bounce off the edge. After this step we return to the RUN/STOP PRESSED? condition test to complete the loop.
Well now wasn't that fun? Lets move on to the real fun stuff!

The Program Code

Alright here is what you have been waiting for!
If you were paying attention, you will know that first our program header will be written.
  1. Open up your Commodore 64 emulator
  2. Attach a disk image to it
  3. Type NEW to clear the program memory of the C64 if you haven't done so.
  4. Type in the program header lines
Here they are again for your convenience.
1 REM C-64 GAME DEVELOPMENT TUTORIALS
2 REM BY RICHARD MARKS
3 REM CCPSCEO@GMAIL.COM
4 REM WWW.CCPSSOLUTIONS.COM
5 REM *******************************
6 REM *
7 REM * THE BASIC BOUNCING BALL
8 REM *
9 REM *******************************
                
Next we type in the program init section
But, what goes there? Well, to figure this out, ask yourself "what do I need?".
My answers are below.
  • SC A variable to hold the screen memory address to make the code easier to read.
  • BG A variable to hold the color of the screen background.
  • BX A variable to hold the ball's horizontal screen position.
  • BY A variable to hold the ball's vertical screen position.
  • DX A variable to hold the ball's horizontal delta. (The velocity of the ball's motion along the X axis.)
  • DY A variable to hold the ball's vertical delta. (The velocity of the ball's motion along the Y axis.)
99 REM *** PROGRAM INIT ***
100 SC=1024:BG=6
110 BX=20:BY=11
120 DX=1:DY=1
                
Now, if you payed attention to the flowchat earlier, you will know that we next set our screen color and clear the screen.
To set the screen color, we POKE our background color state we stored in the BG variable into the proper memory address.
The VIC chip inside the C64 (the thing that provides our wonderful graphics) is located at the memory address 53248, and the register number for the screen background color is 33. Add 33 to 53248 and we get 53281. This is the proper memory address that we need to modify so that we can change the color of the screen.
Remember we set BG to have a value of 6? Well that is an index number of the color table..namely the color BLUE.
So that means we are going to clear the screen to blue. To do this, we just POKE our desired color table index number into the background color register of the VIC.
To clear the screen we are going to use a PRINT statement CONTROL CODE. You type PRINT then open the double-quote to enter QUOTE MODE, and press the SHIFT and HOME keys. You should see a little reverse-printed heart. close the double-quote to exit QUOTE MODE. When that code executes, the screen will be cleared.
130 POKE 53281,BG:PRINT "{SHIFT+CLR/HOME}"
Okay, now we begin the main loop of our program.
Drawing the ball. The Commodore 64 has some useful special characters in its ROM. One of which is a solid ball shape. The character value is 81. We are going to POKE that character on the screen at the calculated memory address.
How do we find the memory address to POKE our ball character to?
There is a very simple formula for figuring this out. P = X + Y * W
The screen memory is mapped in a linear fashion starting at memory address 1024. What this means is if you are starting at 1024 and moving right, when you go off the right edge of the screen you appear on the left edge, one row down at memory address 1064. (There are 40 character positions across the screen.)
So, we have our screen memory starting point stored in our SC variable, and our ball X position in BX and the Y position in BY, and we know there are 40 characters that make up one row of the screen. (This is the width of the screen.) So we have enough information to calculate the memory address.
The calculation is simple. For the first time that the code is called the memory address will be 1484. (SC (1024) + BX (20) + BY (11) * 40 = 1484)
149 REM *** MAIN LOOP ***
150 POKE SC+BX+BY*40, 81
                
Next we need to wait a short amount of time. I'm choosing to wait ten clock ticks.
160 FORW=1TO10:NEXT
                
To achieve the effect of motion, we erase the ball from its current position. To erase, we are just going to POKE a space (character 32) into the location.
170 POKE SC+BX+BY*40, 32
                
Updating the ball's position is very easy. Its BASIC addition for crying out loud!
180 BX=BX+DX
190 BY=BY+DY
                
Okay, we want our ball to bounce off the edges of the screen. To do this we just simple test the position and if we reach an edge, we inverse the delta for the axis.
200 IF BX <= 0 OR BX >= 39 THEN DX = -DX
210 IF BY <= 0 OR BY >= 24 THEN DY = -DY
                
Finally, we end our main loop by returning to the first line of our main loop code.
220 GOTO 150
                

Saving

Okay, I should have said this earlier, but SAVE OFTEN AND SAVE EARLY! I saved after I wrote every 2 lines of code in VICE.
To save your program, you need to have a writable disk image attached to your emulator (or a real writable disk in your Commodore 64 disk drive) and you type the following command:
SAVE "PROGRAM NAME", 8
                
Its VERY important that you remember to SAVE your work, otherwise you will lose your program when you turn off the C64 or quit the emulator!
And that is the end of this tutorial! Thank you for reading. If you have any questions or comments, please contact me.

Screenshots

Click on a thumbnail to view the full-sized image.
Load the saved program.
Loaded and ready to RUN.
Hey look! A ball! (Looks better in motion)
The full source after typing LIST in VICE.
All contents of this tutorial are © Copyright 2009, Richard Marks. All rights reserved. Permission to publish this article granted byRichard Marks to Mattias Gustavsson. This article may not be redistributed in any form without permission.Contact Richard Marks if you are interested in publishing this article on your site.





C-64 Game Development Tutorial #2

Richard Marks - www.ccpssolutions.com, May 18, 2009

Welcome to my Commodore 64 Game Development Tutorials!

I am going to be using the VICE x64 emulator, though you can use any Commodore 64 emulator or even the real hardware if you have it!
While it is not completely necessary to read the first article in the series before you read this one, I recommend that you do so in order to have a better understanding of the code.
In this article, we are going to add a paddle to our bouncing ball demo, that the user can move left and right with the keyboard.
The ball will not, however, bounce off the paddle in this demo. That will be covered in my next article.
Game Programming gets significantly more complex when you are writing for old hardware because there aren't any "libraries" of pre-written code that can ease any tasks. You need to plan everything in advance, otherwise you cannot get it written. The code is dependent on the line numbers that you use, resulting in a sort of code-lock that makes the task of making any changes once you start coding typically mean a complete rewrite. A clear and concise plan is required in order to write games on the C64 and I'm hoping that my article conveys this fact.

The Program Layout

In addition to the code from the first article, we will be using two sub routines in this demo.
Each sub routine will start at a line number starting with 1000 in increments of 200. That gives us 20 lines for each subroutine. That should be plenty of space to write a subroutine. If 20 lines is not enough, then you need to break up your subroutines more.

The Program Design

Now, lets talk a little about what our program will do.
Our demo is going to be very simple so that you can follow it easily.
Here is the program logic:
Flowchart for Program Logic
There are two sections to the flowchart above.
  1. The main program logic
  2. The subroutines: MOVE PADDLE LEFT (#1), and MOVE PADDLE RIGHT (#2)
Lets walk through the program's logic so that you have a better understanding of what you see above.
Start at the top at the START bubble and follow the arrows.
  1. START This is where the program starts executing when the user RUNs the program.
  2. INITIALIZE PROGRAM VARIABLES This is where we give the initial values to the variables that we will use in our program.
  3. SET SCREEN COLORS We change the color of the screen and border here.
  4. CLEAR SCREEN We clear the entire screen of all characters at this point.
  5. RUN/STOP PRESSED? Here we have a dummy condition because our program will run indefinitely until the user hits the RUN/STOP key. This is a conditional block. If the result of the condition test is YES then we will follow the arrow down to the next step.
  6. END Here is where our program is no longer running. We are back in the C64 BASIC INTERPRETER at this point.
  7. GET KEYBOARD INPUT We are going to scan the keyboard for a single keypress and store it in a variable.
  8. IS A KEY PRESSED? We need to see if the key that was pressed is our key for moving the paddle left, which is the Akey. If the result of this condition test is YES, then we JUMP to the #1 subroutine, otherwise we continue to the next step.
  9. IS D KEY PRESSED? We need to see if the key that was pressed is our key for moving the paddle right, which is the D key. If the result of this condition test is YES, then we JUMP to the #2 subroutine, otherwise we continue to the next step.
  10. A This is a JUMP TARGET which is just a marker to let us know that we will be returning to this point from somewhere else in the code. Just move to the next step, since no code is executed here.
  11. UPDATE BALL POSITION We add the ball delta values to the ball's position to obtain the new ball position.
  12. BALL X OUT OF BOUNDS? We want to know if the X position of the ball has reached either the left or right edges of the screen. If the result of this condition test is YES, then we will continue to the next step, otherwise we skip down to the following condition test.
  13. INVERT X DELTA To achieve the effect of bouncing the ball, we invert the value of the ball's horizontal motion delta X.
  14. BALL Y OUT OF BOUNDS? We want to know if the Y position of the ball has reached either the top or bottom edges of the screen. If the result of this condition test is YES, then we will continue to the next step, otherwise then we skip down to the DRAW BALL step.
  15. INVERT Y DELTA To achieve the effect of bouncing the ball, we invert the value of the ball's vertical motion delta Y.
  16. DRAW BALL We draw the character that will represent the ball on the screen when the code reaches this point of the execution.
  17. WAIT A SHORT TIME We are using a simple FOR-NEXT LOOP DELAY here.
  18. ERASE BALL We erase the ball from the screen to achieve the effect of motion.
  19. DRAW PADDLE We draw the characters that make up our paddle on the screen when the code reaches this point of execution. We JUMP back to the RUN/STOP PRESSED? condition test to complete our loop and the code will execute again from that point.
The MOVE PADDLE LEFT (#1) subroutine logic is as follows:
  1. PADDLE X-1+W/2 OUT OF BOUNDS? We test to see if the position left of the paddle reaches the left edge of the screen. If the result of this condition test is YES, then we RETURN to our Jump Target A. If the result of this condition test is NO, then we continue down to the next step.
  2. DECREMENT PADDLE X We decrease the value of the variable that holds the paddle's X position.
  3. ERASE RIGHT OF PADDLE When we move the paddle, there will be a ghost character on the right side of the paddle, we erase this character before we RETURN to our Jump Target A.
The MOVE PADDLE RIGHT (#2) subroutine logic is the same as the #1 subroutine except its reversed as you will see below:
  1. PADDLE X+1+W/2 OUT OF BOUNDS? We test to see if the position right of the paddle reaches the right edge of the screen. If the result of this condition test is YES, then we RETURN to our Jump Target A. If the result of this condition test is NO, then we continue down to the next step.
  2. INCREMENT PADDLE X We increase the value of the variable that holds the paddle's X position.
  3. ERASE LEFT OF PADDLE When we move the paddle, there will be a ghost character on the left side of the paddle, we erase this character before we RETURN to our Jump Target A.
As you can see, there isn't anything really complex going on here. Lets get on with the code next!

The Program Code

I said that I was going to reuse the code from the first article, however I'm not simply loading the old program and adding new lines. I am writing everything over from scratch because we need to add more variables, do more initialization, and the line numbers are going to change quite a bit.
The first 9 lines will remain the same except for line #7 which will hold a new comment for our program name. The header is below:
1 REM C-64 GAME DEVELOPMENT TUTORIALS
2 REM BY RICHARD MARKS
3 REM CCPSCEO@GMAIL.COM
4 REM WWW.CCPSSOLUTIONS.COM
5 REM *******************************
6 REM *
7 REM * ENTER THE PADDLE
8 REM *
9 REM *******************************
  
Next we type in the program init section
Our program will require several new variables.
I should have mentioned in the first article that variable names can be only one, or two characters in length, made up of only alpha-numeric characters A-Z and 0-9. Additionally, STRING variables are suffixed with a dollar sign. Such as A$
There are a few reserved variables that you may not define, since they are used for special purposes.
  • ST I/O status.
  • TI Every 1/60th of a second this variable will be updated. When you turn on the C64, this value starts at 0.
  • TI$ Automatically updated by the C64; This string holds a clock in the form of three pairs of numbers to represent the hours, minutes, and seconds.
We are not going to use either of these in our program, so I will not explain their usage in depth.
Moving on, lets see what variables will our program require.
MEMORY ADDRESS POINTER VARIABLES
We will be POKE-ing and PEEK-ing different memory locations, and to keep from retyping the memory addresses over and over, we define variables that hold the starting address of the hardware we need to access.
  • M1 A variable to hold the screen memory address.
  • M2 A variable to hold the color memory address.
  • M3 A variable to hold the screen background color register memory address.
  • M4 A variable to hold the screen border color register memory address.
Note: By default, the screen memory address space starts at 1024, and the color memory address space starts at 55296.
The screen is 40x25 (1000) characters in size. That is, forty characters across and 25 down. Every character screen cell has two attributes that are located in two different places in memory. The character value is in screen memory, and the color is in color memory. By POKE-ing values into the screen memory (1024 - 2023) we will see the specified character displayed on the screen, and when we POKE values into the color memory (55296 - 56295) we will change the color of the screen cell we specified.
The values that can be POKEd into screen memory are 0 - 255. The values that you can POKE into the color memory are 0 - 15, each value corresponding to the following colors:
  1. BLACK
  2. WHITE
  3. RED
  4. CYAN
  5. PURPLE
  6. GREEN
  7. BLUE
  8. YELLOW
  9. ORANGE
  10. BROWN
  11. 10 LIGHT RED
  12. 11 DARK GRAY
  13. 12 GRAY
  14. 13 LIGHT GREEN
  15. 14 LIGHT BLUE
  16. 15 LIGHT GRAY
If you POKE values larger than 15 into color memory, you will cycle through the color table again. Eg 16 is BLACK, 17 is WHITE, etc..
COLOR VARIABLES
These variables will let us change the colors we use easily.
  • C1 A variable to hold the color of the screen background.
  • C2 A variable to hold the color of the screen border.
  • C3 A variable to hold the color of the ball.
  • C4 A variable to hold the color of the paddle.
GENERAL PURPOSE / SUBROUTINE VARIABLES
These variables will serve different purposes depending on when they are used. They are used by subroutines.
  • K$ A variable to hold the key that was last pressed.
BALL OBJECT VARIABLES
These variables define the properties of our ball object.
  • BX A variable to hold the ball's horizontal screen position.
  • BY A variable to hold the ball's vertical screen position.
  • B1 A variable to hold the ball's horizontal delta. (The velocity of the ball's motion along the X axis.)
  • B2 A variable to hold the ball's vertical delta. (The velocity of the ball's motion along the Y axis.)
PADDLE OBJECT VARIABLES
These variables define the properties of our paddle object.
  • PX A variable to hold the paddle's horizontal screen position.
  • PY A variable to hold the paddle's vertical screen position.
  • PW A variable to hold the paddle's width in characters.
We need to initialize our program's variables now. Lets make our screen green, the border light green, our ball white, and our paddle black. We are going to create our paddle using 3 special C64 characters. The paddle width will be 5. We will start our ball near the center of the screen, and the paddle will start in the bottom center of the screen. The paddle position corresponds to the left edge of the paddle. The ball should start moving down and to the right. Using this knowledge, we can initialize all our program's variables.
99 REM *** PROGRAM INIT ***
100 M1=1024:M2=55296:M3=53281:M4=53280
110 C1=5:C2=13:C3=1:C4=0
120 BX=20:BY=11:B1=1:B2=1
130 PX=20:PY=24:PW=5
  
Clearing the screen and setting our screen colors is nearly the same as the bouncing ball demo code. We just need to use our new memory address pointer variables and color variables.
140 POKE M3,C1:POKE M4,C2:PRINT "{SHIFT+CLR/HOME}"
  
Okay, now we begin the main loop of our program.
Referring to the flowchart that I showed you earlier, we see that the first thing that we must do is get the keyboard input. We do this using the GET BASIC statement. It allows one to get a single character of data from the keyboard.
199 REM *** MAIN LOOP ***
200 GET K$
  
That was easy... Right? Okay, lets get the conditions out the way.
210 IF K$ = "A" THEN GOTO 1000
220 IF K$ = "D" THEN GOTO 1200
  
Next we update the ball position like our flowchart tells us. And then we handle the ball bouncing condition tests.
230 BX=BX+B1:BY=BY+B2
240 IF BX <= 0 OR BX >= 39 THEN B1 = -B1
250 IF BY <= 0 OR BY >= 24 THEN B2 = -B2
  
Lets draw the ball, wait five clock ticks, and erase the ball.
This line looks a little complex. Let me break it down for you.
  1. A1=M1+BX+BY*40 We calculate the memory address in screen memory space that the ball will be drawn in, and save the address in the A1 variable.
  2. POKE A1+M2-M1,C3 We POKE the ball color into color memory space at the calculated address that we get by adding the color memory address to our A1 variable and subtracting the screen memory address.
  3. POKE A1,81 We POKE the ball character into screen memory space at the address we calculated before.
  4. FOR W = 1 TO 5:NEXT We wait for five clock ticks using a simple FOR-NEXT LOOP construct.
  5. POKE A1,32 We POKE an empty space character into screen memory space to erase the ball.
260 A1=M1+BX+BY*40:POKE A1+M2-M1,C3:POKE A1,81:FOR W = 1 TO 5:NEXT:POKE A1,32
  
We now need to draw the paddle like our flowchart tells us to. This is a little more complex than the ball drawing code since our paddle is made of five characters and not one. I guess I should explain the fun stuff below so you are not scratching your head wondering.
  1. A1=M1+PX+PY*40 We add the screen memory address, the paddle X position, and the paddle Y position and multiply the whole shbang by 40 to get the proper memory address for the left side of the paddle, and save the result in the A1 variable.
  2. POKE A1,85 We POKE the character for the paddle's left side to draw it on the screen.
  3. POKE A1+PW,73 We POKE the character for the paddle's right side to draw it on the screen.
  4. FOR A2 = A1+1 TO A1+(PW-1):POKE A2,67:NEXT We POKE the character that makes up the paddle center using a FOR-NEXT LOOP.
  5. A2=A1+M2-M1 We calculate the color memory address for the paddle's left side.
  6. FOR A3 = A2-1 TO A2+PW:POKE A3,C4:NEXT We loop across the entire paddle and color it with our paddle color.
270 A1=M1+PX+PY*40
280 POKE A1,85:POKE A1+PW,73:FOR A2 = A1+1 TO A1+(PW-1):POKE A2,67:NEXT
290 A2=A1+M2-M1:FOR A3 = A2-1 TO A2+PW:POKE A3,C4:NEXT
  
Finally, we end our main loop by returning to the first line of our main loop code.
300 GOTO 200
  
Now we need to write the subroutines. Remember that we are starting subroutines at line 1000, and that we skip 200 line numbers between each subroutine.
Moving to the left
999 REM ** MOVE PADDLE LEFT SUB
1000 X1=PX-1
1010 IF X1 < 0 THEN GOTO 230
1020 PX=PX-1
1030 POKE M1+PX+PW+1+PY*40,32: GOTO 230
  
Moving to the right
1199 REM ** MOVE PADDLE RIGHT SUB
1200 X1=PX+PW+1
1210 IF X1 > 39 THEN GOTO 230
1220 PX=PX+1
1230 X2=X1-(PW+1)
1240 POKE M1+X2+PY*40,32:GOTO 230
  
And that is the end of this tutorial! Thank you for reading. If you have any questions or comments, please contact me.

Full Source

I've provided the full source below to make it easier for you to see the program as a whole.
1 REM C-64 GAME DEVELOPMENT TUTORIALS
2 REM BY RICHARD MARKS
3 REM CCPSCEO@GMAIL.COM
4 REM WWW.CCPSSOLUTIONS.COM
5 REM *******************************
6 REM *
7 REM * ENTER THE PADDLE
8 REM *
9 REM *******************************
99 REM *** PROGRAM INIT ***
100 M1=1024:M2=55296:M3=53281:M4=53280
110 C1=5:C2=13:C3=1:C4=0
120 BX=20:BY=11:B1=1:B2=1
130 PX=20:PY=24:PW=5
140 POKE M3,C1:POKE M4,C2:PRINT "{SHIFT+CLR/HOME}"
199 REM *** MAIN LOOP ***
200 GET K$
210 IF K$ = "A" THEN GOTO 1000
220 IF K$ = "D" THEN GOTO 1200
230 BX=BX+B1:BY=BY+B2
240 IF BX <= 0 OR BX >= 39 THEN B1 = -B1
250 IF BY <= 0 OR BY >= 24 THEN B2 = -B2
260 A1=M1+BX+BY*40:POKE A1+M2-M1,C3:POKE A1,81:FOR W = 1 TO 5:NEXT:POKE A1,32
270 A1=M1+PX+PY*40
280 POKE A1,85:POKE A1+PW,73:FOR A2 = A1+1 TO A1+(PW-1):POKE A2,67:NEXT
290 A2=A1+M2-M1:FOR A3 = A2-1 TO A2+PW:POKE A3,C4:NEXT
300 GOTO 200
999 REM ** MOVE PADDLE LEFT SUB
1000 X1=PX-1
1010 IF X1 < 0 THEN GOTO 230
1020 PX=PX-1
1030 POKE M1+PX+PW+1+PY*40,32: GOTO 230
1199 REM ** MOVE PADDLE RIGHT SUB
1200 X1=PX+PW+1
1210 IF X1 > 39 THEN GOTO 230
1220 PX=PX+1
1230 X2=X1-(PW+1)
1240 POKE M1+X2+PY*40,32:GOTO 230
  

Screenshots

Click on a thumbnail to view the full-sized image.
Loading in the code after I've saved.
The code running.
The first section of code..
The second section of code..
The third section of code..

All contents of this tutorial are © Copyright 2009, Richard Marks. All rights reserved. Permission to publish this article granted byRichard Marks to Mattias Gustavsson. This article may not be redistributed in any form without permission.Contact Richard Marks if you are interested in publishing this article on your site.

Inventario de Software Retro


ATARI 5200


Nombre Cartucho Manual Overlay Caja Sellado
Choplifter 1
Countermeasure 1
Dig Bug 1
Football 1
Pac-Man 1
Pole Position 1
Realsport Baseball 1
Realsport Soccer 1 1
Realsport Tenis 1
Robotron 2084 1
Soccer 1 1
Star Raiders 1 1 1 1 A

ATARI 800&400


Nombre Distribuidor Medio Manual Caja Sellado
Alpha Shield Sirius C 1 1 S
Apple Panic Broderbund T 1 1 D
Atlantis Imagic C 1 1 S
Bc's Quest For Tires Sierra C 1 1 D
Centepide Arari C 1 1 A
Crossfire Sierra C 1 D S
Demon Attack Imagic C 1 1 S
Dimension X Synapse T 1 1 A
Donkey Kong Junior Arari C 1 1 A
Fast Eddie Sirius C 1 1 A
Frogger Parker Broders Falta 1 1 D
Gyruss Parker Broders C 1 1 A
Pengo Arari C 1 1 A
Pit Stop Epyx C 1 1 A
Pogoman Computer Magic C 1 1 A
pole position Arari C 1 1 A
Q-Bert Parker Broders C 1 1 S
Serpentine Broderbund C 1 1 A
Temple Of Apshai Epyx D 1 1 A
Commodore 64
Nombre Distribuidor Medio Manual Caja Sellado
Air Line Adventure International Div Scott Adams T 1 D
Bandits Sirius D 1 1 1
Buck Rogers Planet of Zoom Sega C 1 D
Centipede Atarisoft C 1 1 1
Clowins Commodore C 1 D
Dig Dug Atarisoft C 1 1 1
Donkey Kong Atarisoft C 1 1 1
Drelbs Synapse D 1 1 1
Gridrunner HesWare C 1 1 1
Pacman Atarisoft C 1 1 1
Rendezvous With Rama (Arthur C. Clarke Trillium D 1 1
Retro Ball HesWare C 1 1
Shamus Synapse D 1 A
Suicide Strike Tronix D 1 1 1
The Pharaon's Curse Synapse T 2 D
The Pharaon's Curse Synapse D 1 A
AVALON HILL
Nombre Medio Atari 400/800 Apple II & II+ Vic 20 Pet CBM (40 column) & 2001 C64 TRS 80 Model I & III Color Computer + Extended basic
Breakthru T 16k
Clear for Action T 48k Level II, 48k, &IV
Close Assault T(2) 40kb Applesoft in Rom,48 k Level II, 48k
Computer Acquire T 16K 16K 16K 16K
Confilct 2500 T 32K,Low Res 16K, Hi Res Level II, 16k, Hi Res
Controler T 16k
Empire of the Overmind T 40kb 48k Level II, 48k
Flying Ace T 16k
GFS Sorceress T 40kb 48k 48k
Gun of fort defiance T(2) 32k Applesoft Basic,48 k 16k Level II, 16k
Legionarie T 64k
Legionarie T 16k
London Blitz T 64k
Major League T Level II, 16k
Moon Patrol T 16k +Joystick
Nukewar T 16k 64k 16k
Pancer East T 64K Level II, 48k, &IV 32k
Pancer Jagd T 32K
Paris In Danger D 48k
Space Station Zulu T 32k +Joystick
Tank Arkace T 16k+Basic 5k 8k 16k
Tankticks T 24k Applesoft Basic, 16 k 16k Level II, 16k
Telengard T 40kb 64k
VC T 32k, & 1200XL 16k 16k
Voyager I T 32k+Basic Applesoft in Rom,32 k 32k, 2.0 Rom 16k 16k

INTELLIVISION
Nombre Cartucho Manual Overlay Caja Sellado
4-TRIS,(2000) (PD).bin
ABPA,Backgammon (1978) (Mattel).bin
Advanced,Dungeons and Dragons - Treasure of Tarmin (1982) (Mattel).bin 1
Advanced,Dungeons and Dragons.bin
Adventure,(AD&D - Cloudy Mountain) (1982) (Mattel).bin
Air,Strike (1982) (Mattel).bin
All-Stars,Major League Baseball (1983) (Mattel).bin
Armor,Battle (1978) (Mattel).bin
1
Astrosmash,- Meteor (1981) (Mattel).bin 2 1 1 1 1
Atlantis,(1981) (Imagic).bin
Auto,Racing (1979) (Mattel).bin 1
B-17,Bomber (1981) (Mattel).bin
Baseball,(1978) (Mattel).bin 1 1
BeamRider,(1983) (Activision).bin
Beauty,and the Beast (1982) (Imagic).bin 1
Blockade,Runner (1983) (Interphase).bin
Body,Slam Super Pro Wrestling (1988) (Mattel).bin
Bomb,Squad (1982) (Mattel).bin
Bouncing,Pixels (1999) (PD).bin
Boxing,(1980) (Mattel).bin
Brickout!,(1981) (Mattel).bin
Bump 'N',Jump (1982-83) (Mattel).bin
BurgerTime!,(1982) (Mattel).bin 2 1 1 1 1
BurgerTime!,II (2010) (4all).bin
Buzz,Bombers (1982) (Mattel).bin
Carnival,(1982) (Coleco-CBS).bin
Centipede,(1983) (Atarisoft).bin
Championship,Tennis (1985) (Mattel).bin
Checkers,(1979) (Mattel).bin
Chip,Shot Super Pro Golf (1987) (Mattel).bin
Commando,(1987) (Mattel).bin
Congo,Bongo (1983) (Sega).bin
Crazy,Clones (1981) (PD).bin
Deep,Pockets - Super Pro Pool and Billiards (1990) (Realtime).bin
Defender,(1983) (Atarisoft).bin
Demon,Attack (1982) (Imagic).bin
Dig Dug,(1987) (Intv Corp).bin
Diner,(1987) (Intv Corp).bin
Donkey,Kong (1982) (Coleco).bin
Donkey,Kong Jr (1982) (Coleco).bin
Dracula,(1982) (Imagic).bin
Dragonfire,(1982) (Imagic).bin
Dreadnaught,Factor, The (1983) (Activision).bin
Duncan's,Thin Ice (1983) (Mattel).bin
Easter,Eggs (1981) (Mattel).bin
ecs.bin
Electric,Company - Math Fun (1978) (CTW).bin
Electric,Company - Word Fun (1980) (CTW).bin
Fathom,(1983) (Imagic).bin
Frog Bog,(1982) (Mattel).bin
Frogger,(1983) (Parker Bros).bin
Go For,the Gold (1981) (Mattel).bin
Grid,Shock (1982) (Mattel).bin
Groovy!,(1999) (PD).bin
Happy,Trails (1983) (Activision).bin
Hard Hat,(1979) (Mattel).bin
Horse,Racing (1980) (Mattel).bin 1 1
Hover,Force (1986) (Mattel).bin
Hypnotic,Lights (1981) (Mattel).bin
Ice Trek,(1983) (Imagic).bin
INTV -,Intelligent TV Demo #5932 (1978) (Mattel).bin
ivoice.bin
Jetsons,,The - Ways With Words (1983) (Mattel).bin
King of,the Mountain (1982) (Mattel).bin
Kool-Aid,Man (1983) (Mattel).bin
Lady Bug,(1983) (Coleco).bin
Land,Battle (1982) (Mattel).bin
Las,Vegas Blackjack and Poker (1979) (Mattel).bin 2 2 1 1 1
Las,Vegas Roulette (1979) (Mattel).bin
Learning,Fun I - Math Master Factor Fun (1987) (Intv Corp).bin
Learning,Fun II - Word Wizard Memory Fun (1987) (Intv Corp).bin
Lock 'N',Chase (1982) (Mattel).bin 1 1 1 1 1
Loco-Motion,(1982) (Mattel).bin
Magic,Carousel (1983) (Intv Corp) [!].bin
Masters,of the Universe - The Power of He-Man! (1983) (Matte.bin
Maze,Demo #1 (GPL).bin
Maze,Demo #2 (GPL).bin
Melody,Blaster (1983) (Mattel).bin
Mickey's,Hello World (1999) (PD).bin
Microsurgeon,(1982) (Imagic).bin
Mind,Strike! (1982) (Mattel).bin
Minotaur,(1981) (Mattel).bin
Mission,X (1982) (Mattel).bin
Motocross,(1982) (Mattel).bin
Mountain,Madness Super Pro Skiing (1987) (Mattel).bin
Mouse,Trap (1982) (Coleco).bin
Mr.,Basic Meets Bits 'N Bytes (1983) (Mattel).bin
NASL,Soccer (1979) (Mattel).bin
NBA,Basketball (1978) (Mattel).bin 1
NFL,Football (1978) (Mattel).bin 1 1 1 1 1
NHL,Hockey (1979) (Mattel).bin
Night,Stalker (1982) (Mattel).bin 1 1 1 1 1
Nova,Blast (1983) (Imagic).bin
Number,Jumble (1983) (Mattel).bin
Pac-Man,(1983) (Atarisoft).bin
PBA,Bowling (1980) (Mattel).bin
PGA Golf,(1979) (Mattel).bin 1
Pinball,(1981) (Mattel).bin
Pitfall!,(1982) (Activision).bin 1
Poker,& Blackjack (1981) (Mattel).bin 1
Pole,Position (1986) (Intv Corp).bin
Pong,(1999) (PD).bin
Popeye,(1983) (Parker Bros).bin
Q-bert,(1983) (Parker Bros).bin
Reversi,(1984) (Mattel).bin
River,Raid (1982-83) (Activision).bin
Robot,Rubble (Prototype) (1983) (Activision).bin
Royal,Dealer (1981) (Mattel).bin
Safecracker,(1983) (Imagic).bin
Santa's,Helper (1983) (Mattel).bin
Scooby,Doo's Maze Chase (1983) (Mattel).bin
Sea,Battle (1980) (Mattel).bin
Sewer,Sam (1983) (Interphase).bin
Shark!,Shark! (1982) (Mattel).bin
Sharp,Shot (1982) (Mattel).bin
Skiing,(1983) (Mattel).bin 2 2 2 2 1
Slam,Dunk Super Pro Basketball (1987) (Intv Corp).bin
Slap,Shot Super Pro Hockey (1987) (Intv Corp).bin
Snafu,(1981) (Mattel).bin
Space,Armada (1981) (Mattel).bin 1
Space,Battle (1979) (Mattel).bin 1 1 1 1 1
Space,Cadet (1982).bin
Space,Hawk (1981) (Mattel).bin 1 1 1 1 1
Space,Spartans (1981) (Mattel).bin
Spiker!,Super Pro Volleyball (1988) (Intv Corp).bin
Stadium,Mud Buggies (1988) (Intv Corp).bin
Stampede,(1982) (Activision).bin 1
Star,Strike (1981) (Mattel).bin 1 1 1 1 1
Star,Wars - The Empire Strikes Back (1983) (Parker Bros).bin
Street,(1981) (Mattel).bin
Sub Hunt,(1981) (Mattel).bin 2 1 1 1 1
Super,Cobra (1983) (Konami).bin
Super,Masters! (1982) (Mattel).bin
Super,Pro Decathlon (1978) (Mattel).bin
Super,Pro Football (1986) (Intv Corp).bin
Super,Soccer (1983) (Mattel).bin
Swords,and Serpents (1982) (Imagic).bin
Takeover,(1982) (Mattel).bin
Tennis,(1980) (Mattel).bin
Tetris,(2000) (PD).bin
Thin Ice,(1983) (Mattel).bin
Thunder,Castle (1982) (Mattel).bin
Tower of,Doom (1986) (Mattel).bin
Triple,Action (1981) (Mattel).bin 1 1
Triple,Challenge (1986) (Intv Corp).bin
TRON -,Deadly Discs (1981) (Mattel).bin 2 1 1 1
TRON -,Maze-A-Tron (1981) (Mattel).bin 1
TRON -,Solar Sailer (1982) (Mattel).bin
Tropical,Trouble (1982) (Imagic).bin
Truckin',(1983) (Imagic).bin
Turbo,(1983) (Coleco).bin
Tutankham,(1983) (Parker Bros).bin
U.S. Ski,Team Skiing (1980) (Mattel).bin
USCF,Chess (1981) (Mattel).bin
Utopia,(1981) (Mattel).bin 1
Vectron,(1982) (Mattel).bin 1 1 1 1 1
Venture,(1982) (Coleco).bin
White,Water! (1983) (Imagic).bin
World,Cup Football (1985) (Nice Ideas).bin
World,Series Major League Baseball (1983) (Mattel).bin
Worm,Whomper (1983) (Activision).bin
Zaxxon,(1982) (Coleco).bin

martes, 23 de julio de 2019

Luis Enrique Fernández Espinosa (ficha personal)

Programador entusiasta y autodidacta desde los inicios de la computación personal, nací el 01/12/1959 en granada España, a los 4 años me trajeron a Venezuela donde resido desde entonces, aun mantengo mi nacionalidad española, y he viajado varias veces a mi tierra natal.

Mi curiosidad por la computación empezó por una calculadora HP33 que vi en una vitrina de tienda, y me preguntaba que significaría programable, vendí algunas cosas para comprármela y si no recuerdo mal, muy pronto hice un juego de disparo al blanco, la calculadora mostraba los números con 7 segmentos iluminados con filamentos o algo asi, lo cierto es que la bala podía ir de izquierda a derecha solamente por 3 niveles, al final la esperaba un supuesto alienigena saltando de un nivel a otro, se podía dirigir la bala hacia arriba y abajo para pegarle al enemigo y llevaba la puntuación. Tuve otras Hps, como la 21, 41cx, 67 de las cuales tambien soy fanático.

A partir de ahí, compre la color computer y ya el primer día, aprendí el basic e hice una simulación de una gota cayendo desde un grifo a un charco de agua, haciendo ondas y sonido, realmente estaba fascinado.

Durante esa época ayude en una tienda que vendía la color computer, llamada Tecnología-80 (luego renombrada ON-Line), necesitaban colocar un anuncio de los precios y capacidades de la color computer en un Tv en la vidriera y me contrataron para hacerlo e ir actualizando los precios y periféricos. Aprendí mucho e incluso hice programas para los clientes, programas para manejar cuentas bancarias, contabilidad y otras, tambien debido a que no se importaban juegos ni cartuchos, (al parecer eran muy caros para que las personas los pudieran comprar y ademas en 1982 comenzó una fuerte devaluación  en Venezuela que aun no se detiene e incluso a aumentado), yo traducía los cartuchos al español y los vendía en formato casete con auto arranque. (no había otra forma de tenerlos de otra forma, si la tienda hubiera podido traerlos y vender estos originales no hubiera hecho eso), luego a los 22 años aun en 1982 viaje a miami, disney, epcot center y la nasa, solo, ya que era muy caro para viajar con alguien, lleve unos 10.000 bs que a un cambio de 4,30 daban unos $2000, justo en el viaje huvo una fuerte devaluacion en Venezuela, compre unos 25 títulos para traerlos, ya que aun no llegaban títulos.

Después pase a la C64 y Amiga, hasta que hubo que cambiar a PC para poder seguir haciendo sistemas de gestión, en 1990 funde mi propia compañía de software (systemas SoftStar) y vendo sistemas administrativos.

Hace ya unos 10 años retome lo retro y para la color computer cree un editor de discos virtuales (CoCoDiskUtil) y un plugin para total comander para gestionar discos virtuales, colaboro con cocopedia, y trate de organizar maltedmedia sin éxito. Tengo una buena colección de color computer, periféricos,  accesorios, y revistas, tambien otros equipos Retro, unos 20 equipos mas y sus periféricos.

lunes, 26 de noviembre de 2018

Atari 5200 - Juego Star Raiders

Este juego es interesante, lo jugué cuando niño y tiene su complejidad, nada mas lease el manual, tiene muchos detalles, y cierta dificultad, es mas difícil conforme avanzas y tiene estrategia, que no es solo disparar tiros.

Este reportaje de star-raiders esta muy interesante y aunque no acostumbro copiar las web en el blog, esta si la pasare traducida, con el correspondiente link original (y con las gracias, aunque no tengo el permiso).

------------------------------------------------------------------------------------------------------------------------

Doug Neubauer , uno de los diseñadores de un nuevo sistema de entrada / salida que permitió canales de sonido dinámico, creó una demostración del juego para la computadora Atari de 8 bits , para demostrar el nuevo dispositivo. Como Spacewar! antes, la demostración generó un juego completamente independiente: Star Raiders.

Doug basó el juego en el texto y en los gráficos primitivos basados ​​en los juegos de Star Trek , donde los jugadores se desvían a un sector del espacio, eliminan a los enemigos allí, y se deforman a un nuevo sector, defendiendo el ataque de las bases de estrellas y vigilando su combustible. Star Raiders repitió esta fórmula con trampas de juegos de acción, agregando combate 3D en tiempo real a la vista basada en mapas estratégicos de Star Trek.

Neubauer afirma que fue el primer juego en utilizar algoritmos 3D que calcularon las posiciones en los tres ejes. Explica por qué las explosiones en el juego tienden a ralentizarlo: tomó mucho poder de procesamiento y luego adivinar la trayectoria de las pequeñas partículas que flotaban lejos del objetivo destruido. Además, afirma:

Hoy, por supuesto, es trivial, pero en ese entonces era el estado de la técnica. El código del juego está formado por módulos: movimiento, control, detección de colisiones, audio, disparo de fotones, cerebro de Zylon y monitor de consola. Se incluyeron módulos especiales para las cartas galácticas (y la estrategia del enemigo en las cartas), junto con un módulo para el escáner de largo alcance.

Atari 5200 Sobreposición de controles (Overlay)

La interfaz principal

V: La velocidad actual de la nave.
K: El enemigo mata
E: unidades de energía restantes fuera de 9999 posibles
T / C: estado de la computadora de seguimiento o ataque
Θ (theta): coordenada horizontal con respecto al enemigo objetivo actual
Φ (phi): coordenada vertical con respecto al enemigo objetivo actual
R: Distancia absoluta al objetivo (el negativo está detrás del barco)
Al seleccionar un número entre 0 y 9 se establece la velocidad del barco.
A/F Ajusta la vista actual a popa o delantera, según lo indicado por la forma de la cruz. Controles al revés para la visión de popa
C/M Alterna la computadora entre el Control de Ataque (el estado actual se indica en la pantalla de heads-up) o la orientación manual
G trae la carta galáctica
H se engancha a Hyperwarp
L se involucra en la exploración del sector de largo alcance
S se dedica a los escudos
T activa el modo de seguimiento
P pausa el juego

La carta galáctica
La carta galáctica
Enemigos
Bases estelares
Hyperwarp
Control de daños
Exploración del sector de largo alcance
Escaneo de largo alcance

Base estrella de acoplamiento y destrucción
Procedimiento de acoplamiento

Salto Hyperwarp
En Hyperwarp

El éxito del juego probaría ser una fuerza impulsora detrás de las ventas de Atari de 8 bits, lo que lleva a los puertos contemporáneos a las consolas Atari actuales. Debido a la complejidad de los controles y la jugabilidad, el controlador Atari Touchpad se incluyó en la versión 2600, con una superposición para Star Raiders, que seguiría siendo el único juego diseñado específicamente para el controlador. El controlador estándar del Atari 5200 incluye un teclado, por lo que se proporcionó una superposición. Aunque los teclados y las superposiciones acercaron la jugabilidad al original Atari 8-Bit, el juego se simplificó de varias maneras para los dos lanzamientos de consola.

Solaris , también desarrollado por Neubauaer, es una secuela directa, al igual que Star Raiders II , en la que Neubauaer no participó.

El éxito de Star Raiders también llevaría a la popularidad del género de combate espacial en primera persona, inspirando a la Elite seminal , que a su vez generó juegos como Wing Commander .

El juego comienza eligiendo uno de los cuatro niveles de dificultad. Mayor dificultad da como resultado enemigos más frecuentes y más peligrosos. El objetivo es obtener la clasificación más alta del juego, "Star Commander Class 1". La clasificación más baja posible es "Clase 5 de cocinero galáctico". El rango se determina a través de una serie de factores que incluyen la energía utilizada, el daño recibido, los enemigos muertos y más.

Star Raiders presenta una serie compleja de opciones para controlar la nave, participar en el combate y administrar la energía. La pantalla se divide en dos partes: la mayoría de la pantalla es un campo de combate en tiempo real 3D. Centrado es una cruz que indica la trayectoria del arma y la orientación de la vista. El cambio de la vista frontal a la trasera cambia el punto de mira a un tablero para indicar una perspectiva orientada hacia atrás.

En la parte inferior derecha, una pantalla de mano a mano incluye datos de orientación: proximidad y asistencia de bloqueo.

La parte inferior de la pantalla presenta una pantalla que incluye:

Además de la visualización en pantalla, el reproductor dispone de una variedad de opciones de control que utilizan la entrada de teclado (versión original de Atari de 8 bits), el controlador de touchpad incluido (Atari 2600) o el controlador Atari 5200. La versión de 8 bits de Atari tiene el conjunto de controles más completo, mientras que las versiones de la consola se simplifican de varias maneras.

El gráfico galáctico es un mapa estratégico que representa a todos los sectores (celdas individuales de la cuadrícula) en la galaxia, y es donde el jugador evalúa las amenazas en las bases estelares, determina la dirección y el costo de los saltos hiperwarp, y puede revisar la Fecha estelar y el daño al Star Cruiser. 7.

Un número de guiones en un sector representa el número de enemigos de Zylon en ese sector, de 1 a 4. Un sector con un solo guión puede tener 1 o 2 enemigos. La velocidad es inversamente proporcional al número de enemigos, por lo que adelgazar una flota enemiga también aumenta la velocidad de esa flota enemiga, lo que agrega una toma de decisiones estratégicas al combate. El indicador de objetivos muestra la cantidad de objetivos en el sector sobre el que el cursor se encuentra actualmente.

Los símbolos de ráfaga de estrellas representan bases estelares estacionarias, donde el jugador repara y repele. Si se destruyen todos ellos, el juego se pierde, pero cada uno pierde los resultados en un puntaje de reducción importante, lo que reduce la clasificación final del jugador al final del juego.

Si una base estelar está rodeada, el tiempo es una cuenta regresiva antes de que la flota Zylon la destruya. Cada 50 unidades de tiempo que pasan significa que las Zylons pueden moverse, y antes de muchas más, si una base está rodeada, será destruida. Si se rodean dos bases, solo una será el objetivo, aunque depende del jugador determinar cuál es el objetivo deseado.

Un cursor, que parece un perno de fotón a larga distancia, ayuda al jugador a planificar dónde se moverá la nave en la carta galáctica. A medida que el jugador mueve el cursor, el indicador de Energía Warp aumentará, mostrando el consumo de combustible de un salto dado, desde el sector en el que se encuentra el jugador hasta el sector objetivo. Después de cierta cantidad, el drenaje de energía salta dramáticamente. Sea o no planificado, si el rumbo del barco se desvía demasiado de la posición de inicio del barco, se producirá esta penalización de combustible.

Las letras que siguen a 'DC' representan las diferentes funciones que son vulnerables al daño. Las letras se vuelven amarillas cuando un sistema está dañado y de color rosa cuando se destruyen:

P: Fotones. El daño a este sistema significa que uno de los dos emisores de torpedos de fotones está caído.

E: Motores. Los motores son un sistema vital cuando persiguen objetivos evasivos y cuando maniobran para atracar con una base estelar. Los motores hiperespaciales no pueden dañarse y son independientes de los sistemas vulnerables del motor. Daño a los motores significa que la velocidad es deficiente, y también varía enormemente de un segundo a otro, creando un efecto violento de parada y arranque que pasa una cierta velocidad. Las velocidades bajas son relativamente predecibles, pero las altas a menudo pueden hacer que el jugador sobrepase al objetivo durante el acoplamiento de la base estelar y las maniobras de seguimiento.

S: Escudos. Si los escudos están apagados, cualquier impacto de Zylon o asteroides destruye instantáneamente la nave. Mientras están encendidos, los escudos pierden energía cuando son golpeados, y en niveles de dificultad más altos, este golpe generalmente resulta en daño o destrucción de un subsistema. En caso de que los escudos se dañen, se encienden y apagan a una velocidad aleatoria. Mientras que en, proporcionan protección como escudos normales. Mientras están apagados, dejan la embarcación vulnerable, pero aún así cuestan energía para mantenerla. Los escudos destruidos dejan la nave completamente vulnerable, pero aún así cuestan dejarlos activados.

C: Computadora de ataque. La computadora de ataque es un sistema de consumo de energía que incluye el seguimiento de objetivos, la ubicación de la cruz y los ataques de fotones guiados durante los bloqueos. El daño a este subsistema elimina la computadora de ataque de la pantalla, aunque todavía drena energía hasta que se apaga. La destrucción del sistema da como resultado un buscador de rango congelado, que requiere el uso del escaneo sectorial de largo alcance para el seguimiento de objetivos, en caso de que el enemigo no sea agresivo.

L: Exploración del sector de largo alcance. El escaneo del sector ayuda al jugador a localizar a todos los enemigos en el sector, incluso cuando el juego limita el combate a dos oponentes a la vez. Aunque es difícil, las muertes en combate se pueden lograr a través de esta pantalla. Los asteroides también aparecen en el escaneo sectorial. Los daños en el escaneo sectorial dan como resultado una doble imagen. La destrucción del sistema da como resultado la pérdida completa de la funcionalidad.

R : Radio subespacial. Este es el sistema que realiza un seguimiento del movimiento enemigo e informa al jugador de la base y destrucción de la base estelar de Zylons. Si se daña la radio, los jugadores no recibirán mensajes confiables de que una base estelar está rodeada o destruida. Además, la Carta galáctica está congelada en el último diseño de base enemigo / estrella que vio el jugador. El cursor aún funciona, pero la única forma en que un jugador puede saber cuántos objetivos hay en un sector determinado es con el indicador de objetivo en la parte inferior de la pantalla del gráfico galáctico.

La pantalla de exploración del sector de largo alcance es un subconjunto de la pantalla principal, que muestra los contenidos del sector actual. El jugador puede pilotar la nave, apuntar y disparar torpedos de fotones (solo hacia adelante), y acelerar hacia el hiperespacio, aunque menos rápidamente que desde la Carta Galáctica.

Todos los asteroides, torpedos de fotones, escombros, Zylons, bases estelares o embarcaciones de reabastecimiento y reparación en el sector se muestran como guiones oscuros. Estarán en una esfera alrededor de la nave espacial (representada en el centro de la pantalla, con la parte delantera hacia arriba y hacia atrás). Debido a la similitud de todos los objetos, el jugador debe deducir la identidad de un objeto basándose en el patrón de movimiento.

El acoplamiento con una base en estrella restaura el conteo de energía de un barco a un total de 9999 y repara todo el daño. Cada vez que un jugador atraca, el puntaje se reduce en una pequeña cantidad, lo que a su vez afecta la clasificación final del jugador.

El jugador debe navegar por la base de la estrella con forma de platillo dentro de las cruces, y la computadora de ataque debe tener la base completamente bloqueada. La distancia y la orientación adecuadas son necesarias para activar el procedimiento de acoplamiento de la base en estrella. Cuando se encuentre a la distancia adecuada, aparecerá un mensaje que le informará al jugador que el procedimiento ha comenzado. Mover el barco aborta la secuencia. Una vez atracado, el barco se repara y reabastece de combustible al instante, y ahora puede abandonar el sector.

Si un jugador está en un sector de base estelar cuando es destruido, Zylons estará instantáneamente en el sector. Un jugador puede destruir una base estelar con torpedos.

Hyperwarp mueve al jugador de un sector a otro rápidamente, y cuesta combustible. Se puede activar Hyperwarp dentro del Mapa galáctico, la exploración del sensor de largo alcance o en la pantalla de combate principal. Mientras que en los hipervigadores, los torpedos de fotones ya no funcionan, y a velocidades más altas, los fotones enemigos no podrán dañar al jugador, por lo que es una táctica útil para desconectarse del combate. Cuanto más rápido se está moviendo la nave, más rápido se engancha el hyperwarp. En el centro de la pantalla aparecerá un pequeño símbolo de cruz. Cuanto más cerca del centro esté esta cruz, más cerca estará el centro del punto de referencia en la Carta Galáctica a la que irá la nave.

Los motores hiperespaciales siempre funcionarán con suficiente combustible. El gráfico galáctico permite al jugador cambiar el punto de referencia que representa el centro de la pantalla.

Al salir del hiperespacio, el jugador puede disparar fotones nuevamente.

Star Raiders fue lanzado durante un renacimiento de la ciencia ficción que siguió a la primera película de Star Wars. También parecía fuertemente influenciado por la serie original de Star Trek, que todavía estaba presente en la mentalidad pública. Más rápido que el viaje de la luz se denominaba hiperwarp, la deformación es un término básico en el viaje de Star Trek más rápido que el de la luz, y las armas que usan tanto los jugadores como los Zylons son fotones, a veces llamados torpedos de fotones, una de las armas principales del Star Trek. franquicia. También puede ser relevante tener en cuenta que los primeros juegos que incluían Star Trek eran a menudo de diseño similar, donde el jugador comanda una nave de la Federación, que avanza de un sector a otro para defender las bases de los enemigos que merodean, vigila el indicador de combustible y toma Daños a los subsistemas de buques.

Otra referencia sutil de Star Trek parece haber sido en el diseño del crucero Zylon. A medida que se acerca, uno nota un golpe entre los dos arcos curvados que apuntan hacia abajo desde el centro de la nave. Esta vista de primer plano podría verse como la vista frontal del diseño clásico de Klingon Cruiser.

Sin embargo, las referencias no parecen detenerse en Star Trek. Star Wars fue referenciado por el luchador Zylon, que se parecía mucho a los luchadores TIE utilizados por el Imperio Galáctico.






















martes, 13 de noviembre de 2018

Atari 5200 - JUEGOS (GAMES), Manuales y su traducción

Todos jugamos a veces estos juegos de computadora y a veces estos viejos juegos, pero curiosamente nadie usa los manuales, y me he estado fijando que hay muchas cosas escondidas en los manuales, y que pasamos por alto al jugar ciertos juegos y algunos datos, trucos y cosas escondidas son bien importantes.
Como me paso hace poco con el juego DIG DUG del ATARI 5200, que es el clon del DIG BUG que esta en muchos equipos mas, resulta que los vegetales de bonos solo aparecen si dejas caer mas de 2 piedras o como que al perder todas las vidas, en el game over, si presionas el botón de disparo el juego te da 3 vidas mas solo para practicar pues no cambia tu puntuación ni el nivel o como que ganas mas puntos si atacas e inflas un monstruo por el costado dejando que venga hacia ti que yendo a buscarlo, aun no se bien como es este ultimo.

A si que me puse a ver donde están los manuales y ya de paso para leerlos mejor les hice OCR y comencé a traducirlos, a ver que les parece.

Es posible que estos manuales tengan copyright, si es así, y no quieren que los tenga acá, solo avísenme, aunque estos están en muchas listas, listos para bajar.

lo que si es obra mía es la traducción en el formato del manual original. eso me gusta, no simplemente un texto. Se que hay Manuales en español de la época, pero solo tengo alguno y no encuentro mas por Internet, así que los fabricare. Por ahora solo llevo 1 con OCR y 1 en español

Todo el lote
Astro Chase.pdf (baja calidad)
Astro-Chase-Atari-5200-Instruction-Manual.pdf (alta calidad) - (OCR) - (ESP)
ballblazer.pdf
beamrider.pdf
berzerk.pdf
blueprint.pdf
bounty bob strikes back.pdf
bristles.pdf
buck rogers.pdf
castle blast.pdf
centipede.pdf
choplifter.pdf
combat 2 advanced.pdf
congo bongo.pdf
countermeasure.pdf
Countermeasure_-_1982_-_Atari.pdf
decathlon.pdf
defender.pdf
dig dug.pdf
dreadnaught factor.pdf
frogger 2.pdf
frogger.pdf
galaxian.pdf
gorf.pdf
gyruss.pdf
h.e.r.o.pdf
haunted house 2.pdf
james bond 007.pdf
joust.pdf
jungle hunt.pdf
k-razy shoot-out.pdf
kaboom.pdf
kangaroo.pdf
keystone kapers.pdf
klax.pdf
mario bros.pdf
meebzork.pdf
megamania.pdf
meteorites.pdf
miner 2049er.pdf
missile command.pdf
montezuma.pdf
moon patrol.pdf
mountain king.pdf
mr_dos_castle.pdf
ms pac-man.pdf
pac-man.pdf
pengo.pdf
pitfall 2.pdf
pitfall.pdf
pole position.pdf
popeye.pdf
q-bert.pdf
qix.pdf
quest for quintana roo.pdf
realsports baseball.pdf
realsports football.pdf
realsports soccer.pdf
realsports tennis.pdf
rescue on fractalus.pdf
return of the jedi.pdf
river raid.pdf
robotron - 2084.pdf
Robotron_2084_1987_Atari.pdf
rs_football_playbook.pdf
space dungeon.pdf
space invaders.pdf
space shuttle.pdf
star raiders star raiders.pdf
star wars.pdf
super breakout.pdf
super cobra.pdf
vanguard.pdf
wizard of wor.pdf
zaxxon.pdf
zenji.pdf
zone_ranger.pdf