Jump to content
  • entries
    36
  • comments
    18
  • views
    33,422

About this blog

Getting back into Atari 8-bit coding.

Entries in this blog

 

Readying yourself for inspiration

An Observation to anyone who has ever wanted to pursue a creative discipline, but didn't do so because they felt they "didn't have sufficient inspiration:"     I've been writing software for the better part of 25-30 years. I have never written games during this period of time, because I didn't think I had a game idea sufficiently interesting enough to write. I have also followed homebrew gaming development since the late 1990s, when I first joined the Stella mailing list (for Atari VCS hom

tschak909

tschak909

 

Making tools in fig-FORTH, an ANTIC Disassembler

Afternoon,   I've made a series of 4 YouTube videos describing in detail the conceptual work, and the creation of words to implement an ANTIC disassembler tool in FORTH to compliment the ANTIC assembler that I wrote.   This basically demonstrates how FORTH can quickly be used to make useful tools that can be intermingled with the development of programs in FORTH so that you don't have to load entire other programs to get stuff done, but rather just flow from one vocabulary of words to the n

tschak909

tschak909

 

APX Extended Fig-Forth: Writing a Full Screen Editor

Hello everyone, progresssing on fig-FORTH.   As part of my work, I am hammering away on tools that I will need to write the game. One of the tools I absolutely want, is a full screen text editor, it will have very simple requirements: split a 64 character fig-FORTH screen line into two 32 character windows, which when the cursor moves, will be scrolled over. provide a way to switch between the following modes, selectable by the yellow keys: Edit mode - Edit a given screen (OPTION)

tschak909

tschak909

 

Paring it all down, why FORTH is interesting to me now.

Hello everyone,   I've been putting little bits of musings on FORTH, as I use the fig-FORTH implementation on the Atari 800 to write a graphics demo that I am working on.   Because FORTH isn't a language, it's an environment with a way of life radically different than anything else out there, It has seriously caused me to reexamine my perspective on solving problems through computer programming.   I've spent the better part of 25 years writing computer programs. At first, it was me, as a

tschak909

tschak909

 

Learning Fig-Forth Videos

Hello everyone. I am creating a series of tutorial and exploratory videos chronicling my journey through learning FORTH and applying it to the Walking Life demo that I am working on in FIG-FORTH.   You may subscribe to my channel on youtube: http://www.youtube.com/tschak909/ to see them, and to start off, and I will be posting them here, as I complete them:   Introduction: http://www.youtube.com/watch?v=JaNn1cnvBAI Screens in FIG-FORTH: http://www.youtube.com/watch?v=nZKYONc7sYs Editing Sc

tschak909

tschak909

 

APX Extended Fig-Forth: Doing a full load

I am roughly halfway through with reconstructing the screens on the APX Extended Fig-Forth disk. There is enough here to be able to use the Debugging Aids (DUMP, CDUMP, etc.), the EDITOR words for manipulating FORTH screens, and the 6502 FORTH ASSEMBLER.   If you want all three of these tools, an 18 LOAD is sufficient (provided of course you are in DECIMAL mode)   Onward...   -Thom   You can see it working here:  

tschak909

tschak909

 

Using the editor in FIG-FORTH.

Once I was able to type in the editor, I was able to start re-entering screens from scratch for the FIG-FORTH.   To do this, I am referencing three different sources:   * Carsten's Atariwiki containing the SCREENs for Enhanced Fig-Forth 1.1 * William Ragsdale's FIG-FORTH Installation Guide, detailing the bootstrapping of the original 6502 FORTH, which also contains info for the editor. * the APX-20029 Extended Fig-Forth disk, as some screens weren't in Carsten's dump, but are required for

tschak909

tschak909

 

Reconstructing APX Extended Fig-FORTH (APX-20029)

I decided one afternoon a couple of days ago, to clear my head from work, and various other projects, to do something else.   I do this from time to time, but what to do? Meh, I'm a hacker. I'll find another hacking project to wipe my brain clean.   I had always found FORTH to be an elegant language, if a bit steep to entry; especially given FORTH's extreme emphasis on efficiency and the alignment of the language entirely to that end. It looks and feels literally like Yoda's brain.   Add t

tschak909

tschak909

 

Work on the asym kernel

I am resuming work on Salmon Run, I had to calculate 255 possible random combinations for playfield state, I did it all inside a text file, separated into columns in which I first drew the binary patterns, and then calculated the PF1, PF2, PF3, and PF4 data accordingly....   A snippet of the graphic notepad file:   RIVER1 RIVER2 RIVER3 RIVER4 PF1 PF2 PF2 PF1 Normal Reversed Normal Reversed --------------------------------------------- 00 11000000 00000000 00000000 0000001

tschak909

tschak909

 

We have smooth scroll!

After beating my brains out on what eventually turned out to be a relatively simple solution, I have been able to implement smooth scrolling in the game (as well as work on the lives display for player 1 and 2) .. it turns out i need to do some slight recalcultion of the river display because I am _WAY_ over my visible line calculations.. No matter, just a few adjustments which i will take care of tonight....   I also still need to fix the scrolling algorithm slightly (move the window boundary

tschak909

tschak909

 

At it Again: Salmon Run

I have temporarily tabled the breakout invaders project, so that I could pursue doing a game on the Atari 2600. After about four days worth of work so far, I've managed to make a stable kernel, and am working on the game every day.   So far, the game uses a 25 line playfield, rendered at 8 pixels tall, and I am working on the needed coarse scrolling before I modify it for fine scrolling.   I am definitely enjoying this, and it's definitely a zen-like experience for me.   Once the game rea

tschak909

tschak909

 

Invaders Game Specification

I thought I had posted this, but it must have slipped my mind. Attached below is the specification of the game I am working on.   -Thom  

tschak909

tschak909

 

Shields, take 2

Hello guys,   Have been refining the shields a bit, and have created a string of DLI interrupts that do RANDOM color changes to COLPF2 on a per scanline basis, creating an electrified pulse effect.. I will refine this, later...but the DLI code is in place. I just need to do a two pronged subroutine that clears the LMS and mode E and DLI bits, and do a slight change to re-vector over the additional DLI routines when not in use. Basic missile shooting is sort of in place, I need to make it track

tschak909

tschak909

 

Seeing the Shields

And now after some initial work, the graphics display for the shields is started... yes.. I will be doing a better job on the graphics soon, I just wanted something in place to mess with. :-P   (can some people help me out on the graphics later?) :-)   I did realise that I will need to kill the shield graphics, the moment the invaders touch it, because of the vertical scrolling technique i am using.. the LMS to the screen memory that holds the shields gets _CLOBBERED_ ... oops, didn't think

tschak909

tschak909

 

Drawing Shields...

Evening all,   Just hacking away on the game. I have decided to add a set of three shields at the bottom of the playfield utilising ANTIC mode E for the graphics. I drew some preliminary shields using GIMP, and systematically converting each group of four pixels into their appropriate nibbles for the screen bytes. Is there an easier way to do this? hmm, i'll just plod along for now.   On the missile front, the missiles are firing properly, but I need to speed them up slightly, it is smoothly

tschak909

tschak909

 

Sometime Soon, it will Shoot.

I am currently working on the player's missile routine, and as soon as it is debugged, i will be applying it to the enemies as well.. I will investigate using player and missile sprite multiplexing to get more than say, two enemies firing at the same time. But until I actually get to that point, I am learning things by trial and error, and looking at others code.   -Thom

tschak909

tschak909

 

Starfield - Attempt #2

Starfield Update:   Definitely better this time, I've tightened the kernel routines a little, and made sure the starfield happens inside horizontal playfield borders. But I need to be able to fix the streaks happening during display... If I enable the WSYNC in the kernel code, the stars stabilise and the streaks stop, HOWEVER, there is a big black hole on the lower left corner of the screen.. WHAT GIVES? WTF? ... ok well, I am tabling this for now, and continuing on.         continuing

tschak909

tschak909

 

Starfield - Attempt #1

Evening fellas,   I took my first crack at a starfield tonight, it still needs a _CRAPLOAD_ of work, the stars flicker, but I do know my technique will work with the proper timing. I will try to tie VCOUNT in and see if I can carefully time the stars to appear on the correct scan lines without flicker, I'm going to try to keep stars down to one per line..maybe I can make something look good... if worse comes to worse, I will try to use two missiles for this, but I don't want to waste precious

tschak909

tschak909

 

First Semblences of Player Motion.

I have completed the first bits of code to handle player motion, I will leave as is for now, and continue on implementing the rest of the core implements for game play, then return to the various motion routines to add the velocity tables.   I have also put a placeholder in the bonus section up top for now, and redid the font slightly to make it more readable.   p.s. I am losing a little bit of granularity doing ANDs on RTCLOK, what if I wanted to do vblank checks on anything but 1 2 4 and 8

tschak909

tschak909

 

THEY LIIIVVEEE MUAHAHAHAHA, erm, well, they march.

muahahahahaha, THEY LIVE!   After combining the horizontal and vertical scrolling techniques from the other code tests, I've been able to make smooth scrolling produce a nice silky smooth march both horizontally, and vertically.. the march ends once the invaders have marched all the way to the bottom of the screen.....   Next up! Player motion!   -Thom  

tschak909

tschak909

 

Horizontal Scrolling works, WHEEE!

Well guys, after a lot of debugging, I have the horizontal scrolling motion working properly.. I have sped it up so that it could be seen.   I have attached the code below, but basically my approach is this:   * use the main line code to set global states, go left? go right? * use the VBI to update actions that need to happen per frame, update the zero page locations for current HSCROL and LMS positions. * use the DLI to update the HSCROL registers appropriately.   it's coming along, bit

tschak909

tschak909

 

Screen Tests II!

Greetings all,   Am nearing the final revision of the playfield layout that I want. I thought I would paste a screenshot so that everyone here could see what I am working on. I have posted two shots, one with NTSC emulation, and one without, it's giving me a reference as to what I need to correct, graphics-wise.   (yes, I am aware of the hanging pixel on the bottom invaders, I am using it as a special reference right now for a bounding box).   <-- with NTSC emulation   <-- withou

tschak909

tschak909

 

Vertical Scrolling Techniques

I've done the first little test of some vertical scrolling techniques using a moving ANTIC JMP instruction, so far it works, i just need to alter the counter on the up cycle slightly, but one question.. how do I make the scrolling completely smooth, with no jumps?   -Thom   Source Code:   ; ; TEST PROGRAM TO TRY MY DISPLAY LIST THEORY. ;   ; NOTES ; ; 5 INVADERS LINES OF 8 PIXELS HIGH ; 2 BLANK LINES BETWEEN EACH SEGMENT ; ; USING ANTIC MODE 2 TO SEE THE LINE DIVISIONS ;  

tschak909

tschak909

 

Learning POKEY

I took some time out, today, to learn the basics of bit-banging the POKEY chip.. I will be doing more complicated experiments as my development with the invaders game continues....   ; ; SOUND01 - PLAY A MUSICAL SCALE ; .INCLUDE atariequ.asm ; ATARI EQUATES *=$0600 ; CRAM OURSELVES IN PAGE 6 JMP START ; GO TO START, SKIP OVER TABLE ; ; TABLES ; PCHTBL .BYTE $79,$6C,$60,$5B,$51,$48,$40,$3C ; C MAJOR SCALE DLYTBL .BYTE $3C,$1E,$1E,$1E,$1E,$1E,$1E,$FF ; QUARTERS ON THE ENDS, EI

tschak909

tschak909

 

Retooling and drawing.

Wanted to let you guys know, that I am still working on the game. I've been in the process of re-building it in ATASM on the Linux side, instead of using MAC/65 inside the Atari 800 itself. I got tired of being squinched into 40 columns.   My current goal right now, is to refactor and get the invaders display working again, then work on getting the bottom half of the display working, and get player movement working.   I have put together a more comprehensive set of system equates, merging i

tschak909

tschak909

×
×
  • Create New...