Jump to content

Photo

Odyssey 2 programming


33 replies to this topic

#1 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Sun Aug 24, 2008 3:49 PM

Does anyone here know how to program Odyssey 2 games, and if so, can they teach me or direct me to a website for more info? What programming language do i need to learn and what software do i need (i have an emulator.) I tried google, but it didn't help.

#2 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • 20,984 posts
  • Location:The land of Gorch

Posted Sun Aug 24, 2008 4:12 PM

The O2 uses the 8048 processor. so you'd need to bone up on it's instruction set. The TASM cross assembler supports the 8048 processor, so you can use that for all your programming efforts.

TASM 3.01

...and the O2EM emulator for testing...

O2EM emulator homepage


Technical specs etc. can be found on Dan B.'s site...
http://www.atarihq.com/danb/o2.shtml


A pretty active O2 programming forum exists here:
http://www.videopac.nl/forum/


More links for follow...
http://soeren.inform...7000/Index.html

#3 Crazy Climber OFFLINE  

Crazy Climber

    Crazy Climberer

  • 10,921 posts
  • Metamuciler
  • Location:NICHIBUTSU DELUXE

Posted Sun Aug 24, 2008 4:13 PM

These guys sell O2 homebrews so they might have some more info, they could also sell your game for you (if you decide to make one) I would send them an email. I met the owner at the MGC a few years ago and he was pretty cool, I am sure he would be happy to help you out if he can.
http://www.packratvg.com/

#4 superbee OFFLINE  

superbee

    Space Invader

  • 49 posts

Posted Sun Aug 31, 2008 5:00 PM

Hi, on my blog you´ll find some projects I started (portugues, for while):
http://odygames.blogspot.com/
Here´s René site, this guy knows everthing about Ody and help me with some of games:
http://www.geocities...7400/index.html

#5 Godzilla OFFLINE  

Godzilla

    Quadrunner

  • 6,773 posts
  • Location:Jacksonville, Fl

Posted Wed Sep 17, 2008 5:58 PM

river raid on the odyssey :) those are some cool projects!

#6 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Tue Nov 9, 2010 12:02 AM

OK, so I found this Hello World program on the Internet for the o^2 and it doesn't work after I assembled it into a ROM file. Why?

Attached Files



#7 GroovyBee OFFLINE  

GroovyBee

    7800 Developer

  • 7,744 posts
  • Busy bee!
  • Location:North, England

Posted Tue Nov 9, 2010 3:07 AM

It would help if you said where you got the code from :-

http://soeren.inform...0/chapter2.html

Did you follow the instructions so get a "bin" file from the "p" file? What emulator did you try it on?

#8 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Tue Nov 9, 2010 9:32 AM

I tried it on o2em. I guess what I want to do is turn a .a48 file inro a .p file before I use ASL? I'm confused...



#9 GroovyBee OFFLINE  

GroovyBee

    7800 Developer

  • 7,744 posts
  • Busy bee!
  • Location:North, England

Posted Tue Nov 9, 2010 10:53 AM

Did you follow the instructions on that page I linked to?

#10 GroovyBee OFFLINE  

GroovyBee

    7800 Developer

  • 7,744 posts
  • Busy bee!
  • Location:North, England

Posted Tue Nov 9, 2010 12:19 PM

I'm not a g7000 programmer but after following the instructions and downloading the assembler and emulator I get a "hello world" binary that works fine.

#11 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Tue Nov 9, 2010 10:54 PM

I tried making a batch file with the directions, but results didn't work. What am I doing wrong here?!



#12 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Tue Nov 9, 2010 11:05 PM

OK, it says I have a fatal error and won't compile.
PASS 1<-[K
> > >HELLO.A48(38) : efrror : error in opening file <-[K
fatal error, assembly terminated.

#13 GroovyBee OFFLINE  

GroovyBee

    7800 Developer

  • 7,744 posts
  • Busy bee!
  • Location:North, England

Posted Wed Nov 10, 2010 2:51 AM

Did you also download the include file "g7000.h"?

#14 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Wed Nov 10, 2010 5:50 AM

Success! That was it. Next steps to take: Find out how to change colors and characters on the thing. Also, I need to learn assembly it looks like. From the very little experience with it, "jmp" acts like "goto". That's all I can discern from it. I saw a website that lists all the colors for the O^2 and how to program them in and letter values, but after googling, I can't seem to find it again.

#15 Animan OFFLINE  

Animan

    River Patroller

  • 2,388 posts
  • Just some guy who plays Atari and watches Anime.
  • Location:Texas

Posted Thu Nov 11, 2010 10:25 AM

I have also been interested in O2 programming. Have been messing around with some of it.

Exidy's Death Race, anyone?

#16 superbee OFFLINE  

superbee

    Space Invader

  • 49 posts

Posted Sat Nov 27, 2010 10:50 AM

Nice to know you´re trying to code Odyssey. Now I have some of my projects in a new page:
http://rafael.guttenbrunner.com/
I not a good programmer I just trying to increase Odyssey graphics, anyway if someone need some code to check, let me know.

Rafael

#17 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Tue Dec 7, 2010 3:29 PM

OK, now I need to know how to make .a48 files. It wouldn't be as simple as using NotePad (nooooo, that'd be too easy...) so it must be done some other way. I have ASL but it doesn't say anything about how to make .a48 files out of text files.

#18 GroovyBee OFFLINE  

GroovyBee

    7800 Developer

  • 7,744 posts
  • Busy bee!
  • Location:North, England

Posted Tue Dec 7, 2010 3:45 PM

Just rename them from .txt to .a48

#19 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Tue Dec 7, 2010 3:51 PM

How weird is this? I tried to do that but it wouldn't work. But uploading the files already named .a48 (as listed on one of those pages above) worked in ASL and stuff.

#20 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Tue Dec 7, 2010 5:30 PM

OK, Now I know how to get a .p file. Through trial and error, I discovered that if you drag an .a48 file to AS's icon and there's no programming errors, it spits out a .p file in the same folder. I then use the batch file I made to get a ROM. What I don't think I'll ever understand, though, is assembly. I think I'm just too dumb to grasp anything about it.

#21 superbee OFFLINE  

superbee

    Space Invader

  • 49 posts

Posted Sun Dec 12, 2010 4:33 AM

OK, Now I know how to get a .p file. Through trial and error, I discovered that if you drag an .a48 file to AS's icon and there's no programming errors, it spits out a .p file in the same folder. I then use the batch file I made to get a ROM. What I don't think I'll ever understand, though, is assembly. I think I'm just too dumb to grasp anything about it.


But what you planning to do, is it Gosub? Let me know, maybe I can help you some way. I´m sure you can do easealy.

Edited by superbee, Sun Dec 12, 2010 4:36 AM.


#22 Bryan OFFLINE  

Bryan

    Quadrunner

  • 8,473 posts
  • Cruise Elroy = 4DB7
  • Location:Puriscal, Costa Rica

Posted Mon Dec 13, 2010 7:59 AM

OK, Now I know how to get a .p file. Through trial and error, I discovered that if you drag an .a48 file to AS's icon and there's no programming errors, it spits out a .p file in the same folder. I then use the batch file I made to get a ROM. What I don't think I'll ever understand, though, is assembly. I think I'm just too dumb to grasp anything about it.

Assembly isn't impossible, you just have to know the general rules about how computers work and then have all the documentation handy about the particular CPU and system you're dealing with.

With any computer system you're dealing with you'll need to know:

1. binary number systems. You need to know how to do binary math and how bits combine to make bytes (or larger numbers on other systems) and you need to know how bitwise operations work like AND, OR, XOR, etc.

2. Understand the concept of memory and address space. Each byte of memory has an address. I can store a value in byte location 432 and when I read location 432 later, the value will be there. Some areas of memory are for your use for variables, and some locations have a special purpose within the system you're using. The full range of possible locations are the address space. Not all locations may be available to you since the CPU may be capable of using more memory than is installed.

3. Understand the concept of a program. The CPU will do the operations it is instructed to do by following a sequence of numbers stored in memory (sometimes this memory is the same as your variable memory and sometimes the program has its own separate memory. The 6502 and 8048 are different in this regard). Assembly language is an easier to understand representation of the machine-language program so you don't have to type in raw instruction data to write a program.

4. Understand the concept of hardware registers. While the majority of available address locations will be memory, some will be special purpose registers inside other IC's. These will allow you to access the video, sound, inputs (like joysticks), and other special functions of the system. Generally, RAM is used to prepare the necessary values to put into these register locations to achieve the desired output from the system.

5. Finally, understand how a typical CPU allows you to read and write values from memory and perform operations on them. CPU's also have registers that preform special functions or allow you to quickly store a number for later use. Many CPU's have an Accumulator which is where the results of an operation are made available.

Here's a program on a simple made-up CPU to show the sort of things one might do (not fully 8048 compliant):

mov A, #3  this instruction would put the number 3 in the Accumulator (note the # means this is a number)
add #2     this instruction would add the number 2 to the 3 we've already got.
mov 1, A   this instruction would put the result of 5 into memory location 1 (note the # is missing)
and #1     this instruction would AND the accumulator (5) with 1, leaving us with 1.
mov R1, 1  this instruction would fetch the 5 from location 1 and put it in a CPU register called R1
add A, R1  add 1 to 5 so A=6.
shl A      shift A to the left. By moving all bits up one, we cause a multiply by 2. A now equals 12.

Anyway, once you get the hang of the CPU and study some existing programs you start to get the concepts you need to build your own program. Game consoles aren't always the best place to start because they're often not meant to be easy to program. Instead, they're made to be programmed by experts and cheap to produce. For example, anyone who tries to learn 6502 on a 2600 is insane, but someone who has written many 6502 programs can concentrate on just learning the peculiar requirements of the system.

At some point, when you're studying programming it will all just click and you'll be on your way.

#23 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Mon Mar 21, 2011 8:45 PM

But what you planning to do, is it Gosub? Let me know, maybe I can help you some way. I´m sure you can do easealy.


It's not Gosub, I don't think I'm ready to do that yet. It's actually my first program I programmed for the Atari 2600, Ants (or Alien Greed). I've made a website and blog entry about what I have done and am planning to do.

Sorry for the necroposting but I feel like returning to this now.

#24 superbee OFFLINE  

superbee

    Space Invader

  • 49 posts

Posted Tue Mar 22, 2011 4:17 PM



But what you planning to do, is it Gosub? Let me know, maybe I can help you some way. I´m sure you can do easealy.


It's not Gosub, I don't think I'm ready to do that yet. It's actually my first program I programmed for the Atari 2600, Ants (or Alien Greed). I've made a website and blog entry about what I have done and am planning to do.

Sorry for the necroposting but I feel like returning to this now.


I saw you now a member of Videopac.nl, there you´ll find some incredible O2 programmers. I checked the Ants roms, unfortunatelly I don´t know much about random things. I don´t know if you see any problem if I give a Gosub start, maybe it could be usefull for you try to check how the things works.

#25 atari2600land OFFLINE  

atari2600land

    Quadrunner

  • Topic Starter
  • 8,010 posts
  • The brightest ideas in the world are here to play.
  • Location:Salem, Oregon

Posted Tue Mar 22, 2011 7:02 PM

That would be really useful, as I learn through examples (and modifying them to get my needs.) As it turns out, I had been a Videopac.nl member since 2008, and I had made 4 posts about the same game back in '08 in the help section.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users