Jump to content
  • entries
    62
  • comments
    464
  • views
    85,006

About this blog

Hardware, software, and other tricks

Entries in this blog

 

Things that go 'boom' in the night

This version adds explosions when monsters are hit by falling rocks or rubies. I'm not really happy with it, but figured I'd let CC2 users play with it. There are a surprising number of different ways a rock can hit a monster, and I don't yet have special handling for most of them, so things can get a little strange.   Setting difficulty to B/A allows the game to be single-stepped via the fire button. This makes it possible to see what's happening with monster and rock movements as well as

supercat

supercat

 

4A50 support for Z26--real soon now

I've managed to patch version 2.13 of Z26 to support 4A50 bank switching. I've sent the code to Eckhard for his approval; if he likes it, I should be able to release it. It auto-assumes that a 64K or 128K file is 4A50 format, and includes bank-switches in the log file. For example (left columns elided) nvbdIZC 8c 11 00 f1 b8a6: 0c 44 6e nop 6e44 (*BANKS 22000/1E000/1C100*) nvbdIZC 8c 11 00 f1 b8a9: 4c 89 b7 jmp b789 nvbdIZC 8c 11 00 f1 b789: 85 02 sta WSYNC nvbdIZC 8c 11 00 f1

supercat

supercat

 

Read paddles in your spare time

Some gamers love paddles. And for some games, they can be the best form of control.Many 2600 programmers hate paddles. They're a pain in the tush to read, since the programmer has to observe, with about a scan line's precision, when the paddle input changes shape.Fortunately, it's possible to ease the requirements for reading paddles considerably if one uses a little trick: although many games reset the paddle timing circuit at the start or end of VSYNC or VBLANK, there is no requirement that

Guest

Guest

 

Introduction to processor hardware

In a classic microprocessor system (things like Pentiums and such get more complicated) the processor communicates with memory and I/O devices using a group of wires called the address bus, another group called the data bus, and a few individual wires which may be called control signals. In the case of the 6502, the primary control signals are called phi2 and R/W.   To read an address, the 6502 drives the address bus with the address it wants to read (e.g. if it wants to read address 1 0010 00

supercat

supercat

 

4A50 for CC2

Here's a rough banking file to run 4A50-format banking on the CC2, along with a little test program. The banking file has a slight bug which this program works around. In particular, the hotspots at $7Fxx don't work unless they are immediately preceded by a read operation which fetches a value $60-$6F (should be $60-$7F). It's possible to work around this this by banking a page full of the value $60 into address $1Exx, and then using "LDA $1EFF,Y" to do the read (with a Y value one higher tha

Guest

Guest

 

4A50 EEPROM access

I'm just about done with 4A50 EEPROM access. I'm a bit surprised by how zippy the EEPROM code can be with a fairly small amount of logic to support it.The biggest limitation is that the EEPROM code must be located in $0000-$3FFF of RAM, $0000-$3FFF of flash, or $8000-$BFFF of flash. Accessing RAM from $4000-$7FFF or ROM from $C000-$FFFF will disrupt EEPROM access.Otherwise, the code that I was expecting to be a real pain in the tusch is actually pretty compact, though it is of necessity split

Guest

Guest

 

Wormy

The original "Wormy", written by a young man named Matt Gokey, was a Commodore 64 game (written in BASIC) in which the player would move a snake around the screen to collect all the goodies while avoiding mines (or his tail). Very much like Commodore's VIC-20 game Slither, except that the screen was filled with non-moving goodies and obstacles rather than having randomly-appearing targets. My first real game on the PC (CGA) was a variation called "Wormy II", which smoothly animated the snake's

Guest

Guest

 

BTP now has a display!

I just posted a new version of the BTP2 demo in the homebrew forum here. Amazing what a poor little 6507 can do. Interestingly, this demo doesn't use any undefined opcodes except for the three-cycle NOP, and it probably doesn't need even that (BIT would probably work just as well).

supercat

supercat

×
×
  • Create New...