Jump to content
IGNORED

I'm Inspired!


Fushek

Recommended Posts

OK ... I'm not a programming genius (I know some minor basics and I'm very comfortable with computers) but would like start playing around with the idea of doing some minor programming for the Intellivision. I've downloaded some demo programs and played around with them, understanding enough to change the Psycho bouncing balls into X's and other minor, silly things. My first question would be ... where would you recommend a novice start? I was thinking that I'd like to understand how to draw the background (art entertains me) and how to create a MOB (I believe that's the term for a moving sprite?) Even just to make a small mini moving scene would be the coolest thing ...

 

Any direction would be appreciated. I've seen the work that you guys do here and it is inspiring! Keep up the great homebrews!

Link to comment
Share on other sites

OK ... I'm not a programming genius (I know some minor basics and I'm very comfortable with computers) but would like start playing around with the idea of doing some minor programming for the Intellivision. I've downloaded some demo programs and played around with them, understanding enough to change the Psycho bouncing balls into X's and other minor, silly things. My first question would be ... where would you recommend a novice start? I was thinking that I'd like to understand how to draw the background (art entertains me) and how to create a MOB (I believe that's the term for a moving sprite?) Even just to make a small mini moving scene would be the coolest thing ...

 

Any direction would be appreciated. I've seen the work that you guys do here and it is inspiring! Keep up the great homebrews!

 

Fushek,

 

Inspiration and dedication is how you start, so welcome!

 

You could start from scratch, like many of us have had to do. However, I would recommend you start with the basic P-Machinery engine I prepared. At least that part will take you as far as getting a core game structure ready. It won't do anything flashy, but you won't have to worry about ROM headers, interrupt requests, and such technical complexities for the moment.

 

I always meant to collect all my articles into a single resource, but I haven't had a chance to do this, so I apologize for this. For the moment, I suggest you search this forum for the threads on P-Machinery. Most of them were discussions while assisting Valter to set up a new game he was working on, but in them I offered some insight into what P-Machinery does and how it works.

 

And of course, I am here to help to the extent that I can. I am also not a programming genius, but as I said in a different thread, that's really not needed; just hard work and some help.

 

-dZ.

Link to comment
Share on other sites

Fushek,

 

Below are the topics I found. They should at least get you going. You do not need to read the entire threads, but at least the first posts will offer information.

 

The latest P-Machinery can be downloaded from this link.

 

Of course, let me know if you have any questions on P-Machinery. Also, feel free to ask any questions regarding Intellivision programming in general; if not I, someone will certainly be around to help.

 

-dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

Thanks for the direction.

 

I'm using Windows and I downloaded the latest versions. I've used the as1600 stuff before with the tutorials and have assembled before ... but I'm having a problem running the build.bat. It runs (after I copied the as1600 files to the pmach directory) but I get 101 errors. I'm assuming that the build should create the rom file that I can run using the jzIntv Emulator, correct?

 

I've attached the error. Any idea what I screwed up ... :?

 

Disclaimer: at any point in time that I become a nuisance, please feel free to ignore me and move on with life.

post-31049-0-12043800-1335214482_thumb.png

Link to comment
Share on other sites

Thanks for the direction.

 

I'm using Windows and I downloaded the latest versions. I've used the as1600 stuff before with the tutorials and have assembled before ... but I'm having a problem running the build.bat. It runs (after I copied the as1600 files to the pmach directory) but I get 101 errors. I'm assuming that the build should create the rom file that I can run using the jzIntv Emulator, correct?

 

I've attached the error. Any idea what I screwed up ... :?

 

Disclaimer: at any point in time that I become a nuisance, please feel free to ignore me and move on with life.

 

Fushek,

 

No worries. That error is because the batch file cannot find the emulator in the "execution path" of the environment ($PATH).

 

Did you follow the instructions in the links above for Part I: Setting up a dev environment for P-Machinery?

 

The instructions walk you through setting up your computer to program using jzIntv and the SDK-1600, so that you do not have to copy the files back and forth every time. It adds the assembler and the emulator to the "execution path" ($PATH) and the SDK libraries to the assembler's library path ($AS1600_PATH).

 

From then on, the emulator and SDK can remain in a single place, and your game code can be saved in its own directory somewhere else, and the development tools and libraries will always be accessible to it.

 

For Windows, you'll have to set the environment using the "System Properties" control panel (Right-Click "My Computer" and choose "Properties); look for the "Advanced Settings" tab, and click the "Environment Variables" button. Then add the environment variables as described in the tutorial.

 

If you're unfamiliar with the command line or the environment variables, let me know, and I'll provide a more detailed tutorial for Windows.

 

-dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

Ah ... now I see the Windows XP version later on (only saw the Mac version earlier ...). I'll try that and see what damage I can do.

 

I did also spent couple of hours to correctly set up the environemt :-)

start from scratch and follow instruction, it will works

 

I try to push any newbie to spend some effort on making the game Kaboom: this one is not a huge project and allow you to learn on background and sprites.. it should be very much compliant with the p-machinery concept and if you succeed to make a scheleton it could be completed by an expert just like Colossal in my personal experience....

it would also be published in cart for sure when finished!

of corse is just a suggestion

Edited by vprette
Link to comment
Share on other sites

Ah ... now I see the Windows XP version later on (only saw the Mac version earlier ...). I'll try that and see what damage I can do.

 

I did also spent couple of hours to correctly set up the environemt :-)

start from scratch and follow instruction, it will works

 

I try to push any newbie to spend some effort on making the game Kaboom: this one is not a huge project and allow you to learn on background and sprites.. it should be very much compliant with the p-machinery concept and if you succeed to make a scheleton it could be completed by an expert just like Colossal in my personal experience....

it would also be published in cart for sure when finished!

of corse is just a suggestion

 

I suggest just starting with the basics. Just make sure to not give up. For a simple background and sprite demo, like Fushek original asked, P-Machinery should make things much easier.

 

Fushek,

 

Once your environment is set up, I can help you with the techniques of drawing a custom screen. In P-Machinery, there's a special place with a big comment that says something like:

   ; Draw screen here

 

You just then write a routine that will load the graphics into GRAM (Graphics RAM) and "paint" them into the BACKTAB (Background Table) and plug in a function call from that spot.

 

Instant custom background. No worries, no fuss.

 

The technique for drawing is rather simple in concept: There is a set of 64 slots in GRAM for you to load any custom tiles, each of 8x8 pixels. The background is just a 2-dimensional grid of 20 columns by 12 rows of such 8x8 tiles, controlled by the BACKTAB.

 

If you imagine it like a "paint-by-numbers" picture, you write in the BACKTAB which of the 64 tiles in GRAM you want at each of the 20x12 background locations, by giving it the tile number and its colour. There are some constraints imposed by the hardware on the colours available for each tile, but we can talk about that later.

 

Additionally, instead of those 64 GRAM tiles, you could use any of the 214 tiles built-into the GROM (Graphics ROM). These contain all sorts of lines and geometric figures that are useful for composing graphics; as well as the classic Intellivision fonts for letters, numbers, and punctuation symbols.

 

-dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

OK. I setup my Environment Variables and ran it and still came up with 40 errors. After downloading the pause.asm and added it to the library, my error count went down to 39 where I'm currently stuck.

 

When I type in the AS1600 and JZINTV, I get the correct responses.

 

Any idea on the 39 errors ... is that files that I'm missing or potentially have mapped incorrectly in the environment variables?

Link to comment
Share on other sites

OK. I setup my Environment Variables and ran it and still came up with 40 errors. After downloading the pause.asm and added it to the library, my error count went down to 39 where I'm currently stuck.

 

When I type in the AS1600 and JZINTV, I get the correct responses.

 

Any idea on the 39 errors ... is that files that I'm missing or potentially have mapped incorrectly in the environment variables?

 

Fushek,

 

After assembling with the batch files, you should see a file with the name of your test program and the extension "lst," such as "pmach.lst." If your environment is set up properly, the file should be in the "bin" directory. Otherwise, look in the current directory.

 

That is the "listing" file output by the assembler, and includes all errors. Search in that file for the keyword "ERROR" and you should see the actual error messages that caused the assembly to fail.

 

Did you assemble using the "build.bat" batch file?

 

Also, did you follow the instructions on Part II of the tutorial, where it guides you through downloading and setting up P-Machinery, and assembling source?

 

Oh, yeah, and my apologies for the missing "pause.asm." I need to fix that.

 

-dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

Victory is mine ... for some reason I was missing the cart.mac and the randfast.asm files. I went to Intelliwiki and downloaded the source code, made the files and placed them in the proper folders. From there, I ran the build.bat and was error free! Opened up the emulator and run the pmach-test.rom and got the title screen as expected.

 

Thanks for the start and your patience ... I'll look at all of the documentation and get playing around and see what I can break!

Link to comment
Share on other sites

Ah ... now I see the Windows XP version later on (only saw the Mac version earlier ...). I'll try that and see what damage I can do.

 

I did also spent couple of hours to correctly set up the environemt :-)

start from scratch and follow instruction, it will works

 

I try to push any newbie to spend some effort on making the game Kaboom: this one is not a huge project and allow you to learn on background and sprites.. it should be very much compliant with the p-machinery concept and if you succeed to make a scheleton it could be completed by an expert just like Colossal in my personal experience....

it would also be published in cart for sure when finished!

of corse is just a suggestion

 

You are way over estimating my abilities! I'll think for now I'll be happy playing around and seeing what the system can do and what I can even manage to do with it ...

Link to comment
Share on other sites

Victory is mine ... for some reason I was missing the cart.mac and the randfast.asm files. I went to Intelliwiki and downloaded the source code, made the files and placed them in the proper folders. From there, I ran the build.bat and was error free! Opened up the emulator and run the pmach-test.rom and got the title screen as expected.

 

Thanks for the start and your patience ... I'll look at all of the documentation and get playing around and see what I can break!

 

I apologize for all that. Cart.mac and randfast.asm should have been included as part of the SDK-1600. Perhaps your version is not the latest one? You may want to follow the links in the tutorials to get the latest one, just to make sure. I know Cart.mac was just added just two years ago.

 

Now that you have it working, I suggest you read through the tutorial P-Machinery Theory to get acquainted with the concepts employed by the game engine.

 

Also, check out the "Tutorial.txt" included in the "docs" directory of P-Machinery. It is the introductory chapter to the tutorial I always planned on writing, but never got around to finish. It also explores in more detail the concept of a game engine and the parts that comprise it.

 

After that, then take a look at the P-Machinery source code itself. It's replete with comments explaining what each piece is doing.

 

And of course, if you have any questions, just ask! :)

 

-dZ.

Link to comment
Share on other sites

OK ... I'm ready to start playing around have a couple of basic questions.

 

1) To start, I plan on breaking down some of the tutorials to get a basic understanding and then recreating in the pmach environment. Am I correct that most of the programming will take place for now in the pmach-test.asm or should I make changes directly into the asm files in the state sub-folder?

2) I thought to walk through the Hello World and Tag Along Todd tutorials on Intelliwiki. Does that make sense as a good place to start?

3) If you have a simple/basic screen background drawn (something that would just show a picture) that I could break down, it would help. I learn best by breaking down the work of others!

 

Thanks again ...

 

Fushek

Link to comment
Share on other sites

OK ... I'm ready to start playing around have a couple of basic questions.

 

1) To start, I plan on breaking down some of the tutorials to get a basic understanding and then recreating in the pmach environment. Am I correct that most of the programming will take place for now in the pmach-test.asm or should I make changes directly into the asm files in the state sub-folder?

2) I thought to walk through the Hello World and Tag Along Todd tutorials on Intelliwiki. Does that make sense as a good place to start?

3) If you have a simple/basic screen background drawn (something that would just show a picture) that I could break down, it would help. I learn best by breaking down the work of others!

 

Thanks again ...

 

Fushek

 

Fushek,

 

I suggested using P-Machinery because it encapsulates the scaffolding and boilerplate code needed to get a program going, and gets it out of the way. If you go with one of the examples that come with the SDK-1600, like Tag-Along-Todd, you'll discover that a lot of the code is actually to support the "back-end" stuff, like synchronizing the "VBLANK" ISR, and stuff like that. P-machinery does all this too, but it wraps it up and puts it aside and abstracts it, so that you don't have to worry about it to begin with.

 

In my opinion, that gets in the way if you're learning, because it's hard to distinguish what is the boring skeleton code and what is actually the "game logic" code to get the cool things done.

 

That's just my opinion, though. The example programs are more like simple, one-off fragments that show off one feature; while P-Machinery strives to be a full-fledged game framework (albeit incomplete and flawed at the moment).

 

In P-Machinery, "pmach-test.asm" is the main file that loads all other modules, and sets up the game engine. If you add new module files, you should insert their "INCLUDE" directives in this file.

 

However, the interesting stuff happens in the "state" subdirectory. Each of those files contains the individual handlers for each of the machine states:

  • st_dispatch.asm - This defines the dispatch table, which is the various states and sub-states in which the game can be. For instance, by default, the game starts in the "Title" state, which just shows the title screen. This state is sub-divided into "Initialization" (where the screen is drawn), and "waitkey" where the system just waits for user input. It also specifies which input-decoder will be used for each state, or none if not applicable.
  • st_title.asm - Handlers for the "Title" state.
  • st_level.asm - Handlers for the "Level" (game-play) state. It draws the title screen and waits for user input.
  • st_over.asm - Handlers for the "Game Over" state. It waits for user input and restarts the game.

 

Take a look at those files. They are very short (for they do hardly anything by default) and have plenty of comments explaining what they do and how you can use them.

 

I can provide later today a sample of drawing a picture. Remember that there are two parts to drawing a picture: first you need to load any custom graphic tiles into GRAM, and then you need to assign those tiles to the background table (BACKTAB). P-Machinery provides some macros and functions to aid in this.

 

There's one more thing that P-Machinery does. It tries to handle the GRAM allocation for you. Instead of having to keep track of what you load where, you can define "blocks" of GRAM for particular purposes, like sprites, or background, or fonts. You do this in the "pmach-test.asm" file.

 

Take a loot at the section marked by the header, "GRAM GRAPHICS DATA."

 

In there, you can define your "GRAM Blocks." The point of this is that, then you can use the macros and functions offered by P-Machinery which expect such blocks as input, telling it which GRAM Block you want to load; instead of having to keep track of memory locations and segment sizes. It's just a convenience.

 

-dZ.

Link to comment
Share on other sites

  • 2 weeks later...

Fushek,

 

keep reading the p-machinery code...

I did try as you mention to retro-engineer some Joe demo and it's going nowere since optimized code you cannot handle in the beginning.

 

start working on the title and have fun

after that try to play with colors.... I guess the best is to have a target of yourself, not modifying existing code.... fix a very simple target (like you put a question on screen and answer by pressing the keytab)

Link to comment
Share on other sites

Fushek,

 

keep reading the p-machinery code...

I did try as you mention to retro-engineer some Joe demo and it's going nowere since optimized code you cannot handle in the beginning.

 

start working on the title and have fun

after that try to play with colors.... I guess the best is to have a target of yourself, not modifying existing code.... fix a very simple target (like you put a question on screen and answer by pressing the keytab)

 

Thanks for the advice. For me, this will be a slow process as I squeeze in a little time to learn in between professional life, family and activities. It's something I'd really like to do. Since I was a kid, I've always wanted to create a computer or video game ... figured why not try to do it on the game system that I grew up with and loved?

 

It will be a long, slow process but one that I really feel I need to do ...

 

Fushek

Link to comment
Share on other sites

Fushek,

 

keep reading the p-machinery code...

I did try as you mention to retro-engineer some Joe demo and it's going nowere since optimized code you cannot handle in the beginning.

 

start working on the title and have fun

after that try to play with colors.... I guess the best is to have a target of yourself, not modifying existing code.... fix a very simple target (like you put a question on screen and answer by pressing the keytab)

 

Thanks for the advice. For me, this will be a slow process as I squeeze in a little time to learn in between professional life, family and activities. It's something I'd really like to do. Since I was a kid, I've always wanted to create a computer or video game ... figured why not try to do it on the game system that I grew up with and loved?

 

It will be a long, slow process but one that I really feel I need to do ...

 

Fushek

 

I spent some months developing Colossal Cave from zero knowledge... now I sent my code to Joe to see if he can find time to complete the game...

If you are able to make some sort of scheleton, few people are available to help you here in the community.... what are your preferred games from 80ties? take the simplest ones and think about making something similar (simple gameplay like pooyan, kaboom, freeway)

also be patience, it's not easy task :-)

Edited by vprette
Link to comment
Share on other sites

Fushek, any luck? Or are you still waiting on me to provide an example on drawing a background image? I owe you that, I know, I just haven't had a chance.

 

-dZ.

 

I think that I'm understanding the logic and some of the code ... having issue so far in "putting it all together". I feel like I have a bunch of car parts but don't know how to assemble the engine. A background image would be awesome, but don't go to any real troubles ... if I take too much of your time, the community will castrate me for delaying Carol (which looks great, BTW)!

Link to comment
Share on other sites

Fushek, any luck? Or are you still waiting on me to provide an example on drawing a background image? I owe you that, I know, I just haven't had a chance.

 

-dZ.

 

I think that I'm understanding the logic and some of the code ... having issue so far in "putting it all together". I feel like I have a bunch of car parts but don't know how to assemble the engine. A background image would be awesome, but don't go to any real troubles ... if I take too much of your time, the community will castrate me for delaying Carol (which looks great, BTW)!

 

No worries, if Carol is delayed it won't be because of you. :)

 

Please, feel free to ask any question and I'll try to assist as I can.

 

-dZ.

Link to comment
Share on other sites

  • 1 month later...

Well ... I've finally dove in and did SOMETHING ... just starting small and drawing a screen. Looked at the SKY.ASM example and ran with it as a template to learn some about drawing on the screen. Played with the DECLE and made a nice little Excel program to translate an eight by eight group of cells into a DECLE command (I'm an accountant and Excel and I are good friends!).

 

Now ... I only have to learn about drawing MOBs, collision detection, game logic, movement, level completion, keeping score, pausing and I'm there! :ponder:

 

Killer Zombies

  • Like 1
Link to comment
Share on other sites

Congratulations! Looking good so far!

Hey! It looks very cool!

 

By the way, are you using P-Machinery?

 

Thanks! So far, just having fun and trying to learn a few basics in my spare time.

 

And yes, and no, to using P-Machinery. I stepped outside for this screen just playing with the sky.asm sample and manipulating it to create the screen. I learn best when I can break down a sample program, change it, and see what happens.

 

I do have a question ... here is the main portion of the code. The issue is that in the string code, the 0's, 1's, etc represent @@0 that are my pictures ... how can I create @@10 and have it use picture "10" and not pictures "1" and "0"?

 

CALL PRINT.FLS

DECLE 240*8 + C_WHT, $200

;01234567890123456789

STRING "00000000000000000000"

STRING "00000000000000013000"

STRING "00000000000000024000"

STRING "00000000000000000000"

STRING "00000000000000000000"

STRING "00000000000000000000"

STRING "00000000000000000000"

STRING "00000000000005500000"

STRING "00000000000006600000"

STRING "00090000080007700800", 0

 

CALL PRINT.FLS

DECLE 240*8 + C_BRN, $200 + 12*20 ;Starts with Row 12

;01234567890123456789

STRING "00000000000000000000", 0

 

CALL PRINT.FLS

DECLE C_RED, $200 + 1*20 +2 ;Starts with Row 1, Column 2

STRING 'Killer', 0

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