After much banging my head against the wall, I finally got the background scrolling smoothly. A lot of the problem was I couldn't keep straight which way was up. The next challenge is to integrate the code from 4K SpaceWar! 7800 and revising the display list builder to compensate for the moving background.
The starfield now move up and down, following the sine wave, though in 8 line jumps. Smooth scrolling is next, but that requires some display list & display list list magic.
I've also started using a 6502 simulator for general debugging. Since a lot of 7800 code is data movement, it's reasonable to use a general 6502 simulator. I caught a couple of bugs this way. The biggest problem is the built-in assembler isn't DASM compatible and isn't as capable.
I've also made some major im
That was both easier & harder than I expected. The hard part was the usual lack of debugging tools on the 7800. The easy was more a reflection of how my 6502 coding skills have improved over time.
Next challenge is to put in the Y & SINE routines. I also need to do some cycle counting and figure out how much CPU time the background starfield will eat. I'd really like to be able to recalculate everything every frame, but I have a sneaking suspicion I might need to interleave backg
Current status - static starfield complete (NTSC version)
The next big step is turning the Star X,Y into DLL & DL entries and going to a dynamically built DLLs (one for on grid i.e. StarY&7=0) instead of the static DLL & DLs. Once that's done, I'll need to integrate the 4K SpaceWar! 7800 sprite to DL routine.
Sorry if this is a little dense and cryptic. It's mostly for me to remind me of the design decisions which I've made (or remade).
Reviewed old blog entries, found
Saturday my wife declared she had suffered enough cabin fever and declared we were heading out, preferably to a flea market in the area. She was looking for Premier League jerseys (ideally an authentic Joe Cole Chelsea blue), but I was keeping my eyes peeled for stuff to add to my Nintendo collection (although I've given it up for Lent, 'cause she convinced my son to do the same). I think I saw two booths with used games and premium prices. My target price these days is C$10 so seeing stuff t
Since I can't find my Leprechaun round tuit, I've told myself I have to work on SpaceWar! 7800 some more. One of the features I really want to add to SW78 is the starfield background (Expensive Planetarium). But the tile map is much larger than the screen, thus it needs to move in some way to show the whole thing. My original idea was to make the movement based on the spaceships wrapping around; they'd kinda drag the starfield with them. The disadvantage with this idea is there are two ships
Okay, I'm part way through Wind Waker; the pirate has become Zelda and I need to ride the waterspout to get my fire & ice arrows. Of course, I don't know how many side plots I need to follow up on, so there's probably a bunch of random sailing left.
Which brings up two points. First, a lot of the reviews really focused on how tedious they found the sailing & wind changing. I disagree. Yes, you're going to spend a lot of time sailing around (often criss-crossing the entire map), b
One of the things my mother-in-law brought with her was her copy of Wind Waker. Last night I sat down for an hour or so and played through the intro island. I really enjoyed playing both N64 Zeldas (though I prefer Occarina to Majora) and my hands instantly "remembered" the controls; pressing R to shift the camera and still pressing A to jump :-).
The big change from the N64 Zeldas is, of course, the cell-shaded style graphics. My first thoughts were "ick, ugh, how annoying and distractin
Well, I haven't touched Leprechaun in over a month. I thought I might find the time over the holidays, but the drive simply wasn't there. Sigh
Big news on the home front is my mother in law is in town 'cause my wife had jaw surgery to fix her overbite. She's not wired shut, but she is swollen and on a liquid diet. I don't think either of us were prepared for the full impact. Ah, well; it's a temporary thing.
My son is having fun playing New Super Mario Bros on his DS, although I thi
My son got a DS lite as an early Christmas present (to play with on the plane). We also gave him "Super Mario 64 DS" and "New Super Mario Bros.", along with the GBA version of Activision Anthology which I happen to have...
I have to say I'm amazed that the DS is able to do justice to SM64 from a graphics perspective. It really says what kind of 3D power it has under the hood. NSMB also has 3D graphics, but more in the Donkey Kong Country style - but rendered in real time instead of pre-re
Got both of these cheap when the local video store closed, along with WarioWare.
Just some final thoughs on Pikmin now that I've finished the game; although I ended up restarting from the beginning when I realized I was too far behind to get all of the parts in 30 days. And I guess that's my main complaint with Pikmin: the 30 day time limit is "un-fun". The time limit on each day isn't bad (except for the final boss), but it's disheartening to realize you're at day 20 with 15 parts still t
One of Woz's design decisions for the Disk ][ was to force the MSB of each byte read to be 1. Although this restricted the number of values each byte could take, this was already restricted by the number of sequential zero bits i.e the time between changes in magnetic field; initally 1 (DOS 3.2), later 2 (DOS 3.3). But the restriction on the MSB had several positive side effects:
1. The MSB could be used as an easy "data ready" flag by the CPU.
2. The read sequencer could hold the completed
As I mentioned in my previous entry, I've been taking a deep look at the Apple ][ Disk ][ controller. IMHO it's an elegant blend of hardware, software & firmware.
The crux of the controller is the P6 (8bitx8bit) PROM which describes the state machine along with an 8 bit shift register and a 4 bit state register.
The CPU selects one of four modes via two PROM address bits (called Q7 Q6):
00 read a byte
01 sense write protect
10 write byte
11 load byte for write
The other 2 ad
My latest distraction is the Apple ][ disk. I'm sure some of you, like me, remember the golden age of copy protection & cracking which happened around the Apple ][. Much of that was because the A2 was largely software driven. (Another Woz brilliant lunancy cost-cutting effort like A2 graphics.)
Unfortunately, because the A2 was pre-Internet, there isn't a lot of surviving detailed documentation on the web. The one piece I'm missing is a detailed description of how the bits get writte
My six year-old son's Christmas wishlist has GameBoy on it. After some thought I realized we have enough ways to play video games around the house that adding another won't be encouraging him to play more. Plus the battery connector on the portable DVD player died (really bad design IMHO - two very small spring steel "fingers" just waiting to get bent out of shape) and we have a 5+ hour plane flight coming up.
Although the DS doesn't have GB/GBC compatibility, it's the current platform so
One thing I find amazing about the 2600 homebrew scene is the strong interest in creating new bankswitching hardware, often with advanced capabilities. I think, very soon, the only remaining VCS limitations will be the capabilities of the TIA and that there are only 76 CPU cycles per line to update the TIA (hmm... shades of the GTIA/ANTIC).
Anyway, one idea which occurred to me is whether it would be possible for the cartridge to automatically bankswitch the 64K (32K usable) address space.
Okay, I've fixed the look-ahead bug which was causing the ladder issues vdub_bobby was noticing. I think you'll find the leprechauns to be a little smarter now. Leprechaun Level Editor updates as usual.
Oh, one note. The AI for swinging on ropes is the same as running with the one exception of falling when the player is directly below. (Note - it may be possible to run under a leprechaun and not trigger this behaviour.) So when the player is higher than the lepre
Thanks to vdub_bobby, I'm making progress.
Okay, I've fixed the problem with the leprechauns getting stuck. (I had a BPL in the en_stop routine where I shoulda had a BMI. So hunt mode wasn't working right. There may have also been an error in the "rotate joystick" lookup tables.) I'll update the Leprechaun Level Editor shortly (check the date).
The problem with the ladders is a little trickier. It has more to do with the lookahead routines and that I'm using the same one for both th
Minor update from yesterday. The leprechauns now try to go towards the player when they stop before they go into hunt mode. (Which should help vdub_bobby's switchback level.) They also should drop off the ends of ropes when stopped.
I also flip-flopped on the drop-off detection, though I'm not certain whether I like it. The Leprechauns now turn around and go into hunt mode when the player is above them and they encounter a drop-off. Unfortunately, with my built-in level this causes them
Hopefully this will be the last update to the enemy AI routines. I would appreciate if the various level creators can update their levels to the latest code (using the Leprechaun Level Editor, v20061101) and see how well things work. For the attached WIP the leprechauns eventually find the player at the starting position, something I was having great difficulty accomplishing with drop off detection.
The Leprechaun (and player) color indicates the direction their joystick is pointing:
Last entry I complained that I'd run out of space. Well, I've now managed to free up a whack-o-space, which has (at least for the moment) cured my space issues. I'm now trying to work out what the heck my enemy AI code is doing (along with some code tweaking). I'm hoping I can get a new release out in the next couple of days.
For those curious, I found the space in my kernal (of all places). Since I knew I needed a goodly amount of space (i.e. not just a few bytes), I first looked at the
"Origin Reverse Indexed", i.e. I've run out of space somewhere in the code. My latest AI changes filled bank 1, grump. I managed to squeeze out the few bytes, but I wanted to add some debugging code to help me figure out how well the AI meets my expectations. There's also a couple of TODOs left in the code. I guess I'm going to have to start looking for places to optimize. Un-fun.
"The Death of PC Gaming"
Attention all PC gamers, start saving your pennies now.
Based on the above article, it sounds like Microsoft might manage to kill PC gaming. In brief:
1. DX10 will require a DX10 capable graphics card and Vista
2. Indications are DX10 graphics cards will have substantial power & cooling requirements, potentially requiring a bigger power supply
3. Vista will definitely require more RAM than XP, and will probably require more CPU
4. Indications also are
I've attached my current WIP, but no updates to the LLE since this version has obvious issues even with my built-in level.
I've added in the "walking on heads" feature. (It actually wasn't as hard as I thought it might have been as it required changes to only one bit of code.) When I first added it the leprechauns had an amusing habit of walking across the screen on top of one another. The look-ahead code took care of that but causes other quirkyness & problems. Hmm... just realized
I'll also update the Leprechaun Level Editor in a minute.
1. enemies on ropes will fall if you pass under them
2. enemies get off ladders before they get to the top
3. simple enemy-enemy collision detection to keep them from getting stuck together (sometimes they pass through each other, sometimes they bounce, but they shouldn't stay in lockstep)
4. code tweaks and a fix so the player doesn't always face left when stopped
I haven't put in the drop-off detection yet. From a