Archive for February, 2012

Megaman complete case/manual/game

Posted in Megaman on February 24, 2012 by pcedev

No, I’m not responsible for selling these. I have nothing to do with the auctions or the one site selling them. I’m not gonna post links here, just stating that I have no official connection with those (other than they’re using my stuffs). Megaman project was and is supposed to be free for the community. Don’t really care either way though. You wanna buy something that’s already free, then so be it 🙂

That said, got something cooking in the works for MM. Yeah, yeah I said I wasn’t gonna work on anything else besides ‘the game’. But that’s bullshit. A man needs a small/simple side project from time to time. The ‘game’ is work, this is play 😉

Megaman 0.98 on SCD

Posted in Megaman with tags , , , , , on February 19, 2012 by pcedev

Someone requested this, so I figured I should add this to the download and links section. It’s not the version that plays CDDA tracks in place of the PSG, just the normal game on CD (for those of you without flash cards). Requires SuperCD 3.0 system card (else you get a warning screen). I guess some CD-R burning software had problems with the old ISO because it wasn’t a multiple of 0x800 byte sectors – fixed now.

Posted in WIP Game 2012 on February 14, 2012 by pcedev

So, main object/ship to collision map is working and done. Just finished the player projectiles (bullets) to map collision; removes bullets from the projectile queue when it hits a surface/collision tile. Moving on, now it’s time to work on the dynamic object creation/deletion code for the script handler. Just a little more functionality and I should be able to do a real test stage/level to show off in video (albeit simple). Also, still haven’t figured out what to do with replacing the R-Type 2 assets. I rather code than worry about it for now, so I might end up demoing (video) it with them. Lame, I know. But whatever.

On a side note, been thinking about ideas for the weapon system design. I’d like to pack as much bullets, action, explosions, and enemies on screen at once without flicker (don’t we all). The weapon, or rather projectiles and pods/options, play a big factor into this. It would definitely be easier to do a vertical shmup than a hori one, but maybe next game 😉 Anyway, it can be tricky choosing the right kind of weapons that look great and minimize sprite count, but look completely natural to the game design. I’m not in that part of the game development stage yet (least coding, almost all design/tweaking work), but I’m keeping things in mind as I go. Obviously graphic FX as well.


Posted in WIP Game 2012 on February 13, 2012 by pcedev

Damn… stupid bugs. What should have taken just an afternoon, took like 3 days to sort out. All because I got sloppy with naming rules between macros (names for the script functions), the related function in the list, and the var associated with the function. All too close in label name (actually just a difference of capital letters at the tail end). Dammit. Anyway, object to collision map and detection logic is working great now (for the main ship). Need to apply it to the ships bullets and just objects in general that get put into the collision list. Then I can move on to object-to-object collision routine.

Game engine progress

Posted in WIP Game 2012 with tags , , , , , on February 12, 2012 by pcedev

Things are coming along nicely. The dynamic function table works great; functions can even remove themselves from the table if or when their task is done. The script handler can forcibly remove all or individual functions from the active list as well. The first function I added was scroll acceleration function. It accelerates or decelerates the maps current speed with either a linear step or non-linear step, and of course a rate in which to apply. The non-linear setup is nothing special, just a second parameter with rate and signed value which gets added to the main signed acceleration variable (which gets signed added to the map speed variable). Thus, the increment changes over time. Adds some nice curves instead of just linear ramps. I think the next function to make for this table will be background processing fade routines and palette related functions.

The second thing is the map collision logic. There’s a separate map for this and a ring buffer in ram. Right now it’s just squares, but I’ve worked out the logic for different shapes inside the 8×8 collision tile. I don’t need anything fancy, just some angled ramp pieces.

PCEAS2 (3.22)

Posted in Uncategorized on February 12, 2012 by pcedev

Just an FYI I forgot to mention in an earlier post; I’m using the new assembler build/version currently for the development of the game I’m working on. So, it should get a good thorough testing from that. So far so good.

Downloads update

Posted in Uncategorized with tags , , on February 9, 2012 by pcedev

I put up the links for Lords of Thunder Dual Boot CD and the Gate of Thunderforce hack, in the download and links section. Both are complete games (no patching necessary). For the LOT dual boot project, burn to CDR first. The way it’s setup, some emulators won’t run it (even if it’s mounted). It has to do with how software interprets the first data track. There’s no Pre-gap defined, so the CD-R recording software will put one in there automantically for 2 seconds (even though I already defined index 00). A hardcoded 2 seconds, exactly what the SegaCD side needs. I purposely left this out so that it would burn correctly. If you mount it or just load the CUE file, there’s no guarantee it’ll run correctly in an emulator. Of course, the real purpose is to see it run on both real systems – not emulation.

new tg16/pce assembler

Posted in Uncategorized on February 6, 2012 by pcedev

Or rather, a new build of PCEAS with changes. MooZ and I were working on doing changes to the assembler, sine some changes were needed for specific code layouts. I was gonna wait and just do a joint release with MooZ last year, but I guess things got slow on his side. So I’m just releasing it here. There’s a readme and a commented ASM test file, but I’ll just relist the new features here.

There’s a new data define directive; .dwl and .dwh. They return the LSB (.dwl) and MSB (.dwh) of a word entry. This useful for building a split lsb/msb tables. But more important, it cuts down the amount of typing needed for creating arrays of function tables of.. function addresses. Normally, you can just handle binary data in split format with external apps and just include the new binary data. But working with specific and runtime address generated labels for tables gets tedious. So this helps. Just copy/paste the same table and change the directive to .dwh for the second split set.

Macro’s now how a new legal character for macro names. Doesn’t sound a like a big deal, but ADDW.b or MOVE.b/MOVE.w/MOVE.l looks cleaner and much nicer than using an underscore _ or such.

Local labels how have -/+ support… sort of. You still need the ‘.’ character to signify/define a local label name, but now you can use .- or .– and .+ and .++ etc. You can use them in higher level math/logic operations too and inside EQUATE defines. You just need whitespace between the end of the name and the – or + operator, *IF* your label ends with a – or +. So test = .+++ + $10 works fine, but so does test1 = .skip+$10. The new labels for local doesn’t not break backwards compatibility with otherwise normal label names. I’m not a big fan of the -/+ usage as it can messy looking real quick in my opinion. But couple of people had requested it. Plus, it would make converting some c64 or such code a little easier (I mean, for when you’re lazy).

Opcodes that cross 8k bank boundaries no longer create an error and stop assembling. That is to say, if one or more opcode’s byte cross that boundary. Now it will generate a warning instead, but assemble correctly. Labels logic works fine with this as well. This means you can make 16k or 24k or whatever size ‘code banks’. This is needed for some hacking related stuff since those commercial assemblers didn’t have this problem/issue (like Bonk for instance). This also applies to data defines as well.

And finally, I fixed a bug where if the assembler encountered a certain error – it would just crash (there was no exit handler).

You can download the new version in Download and Links section.

Note: Things I like about PCEAS assembler syntax that I wouldn’t change; [] instead of () for indirect addressing. Who cares if almost all the original 65x assemblers used (), [] just makes things sooo much easier for the parser and avoid *certain* high level logic bugs (misinterpreted bracketing for opcodes). And < for non indirect ZP addressing. Though what I would like to add in the future is <# and >#for shorthand #low() and #high() directives, which have nothing to do with ZP addressing.

R-Type 2 demo

Posted in Uncategorized on February 6, 2012 by pcedev

I started this back in 2008, as a WIP for a shmup engine. I never did get very far into it; no collision map (at least applied in game), no other enemy objects. Anyway, using the assets to have something for my new engine, made me think why not just release it as is; source and rom. Mind you, it’s nothing special at all. But whatever, it’s fun to look at. Note: That second layer that scrolls on the arcade version, is setup for dynamic tiles (15×15 tile image). I thought I had a demo with the dynamic tile scrolling working in game, but I couldn’t find it from the back up stuff/drive. The tiles are setup for it, but the pre-shifted/rendered tile set for it isn’t in the build itself (although I have them as assets in other folders). First boss was done too, but this demo doesn’t load that section either. I don’t plan on updating the source for it, just releasing it as is – with some removal of obsolete comments and such. Too bad I didn’t put the time into this years back. It would have made a pretty cool single level+boss demo.

Here’s the demo (rom and source): Download and links section

Game engine news

Posted in WIP Game 2012 on February 4, 2012 by pcedev

Heh, game engine logic is coming along nicely. Even if I just put 1-2 hours a day on working on it, I’ll be getting through this in no time (relatively speaking). Making it a must-do schedule, a second job so to speak.

 I wanted to show off some stuff soon, but all I have is R-Type 2 assets (converted for PCE) that I was using a long time ago to demo out a game engine. I don’t think it would be appropriate to demo the existing engine with those. I’ll see if I can make something up one of these days to use in place of (though it won’t look as cool as the assets I have now, shame).

Anyway, the script engine is coming along nicely. Right now it calls specific tasks (immediate task) and such for certain parts of the stage, but I started working out the logic for function list calling. Functions that run or serve as a background process over multiple frames. Basically a dynamic function pointer array (an array with function pointers, and the list is dynamically increased or decreased. Although the higher level array is just index numbers by themselves, in which they point to specific function pointers. Just faster to dynamically move around/sort bytes instead of words). There’s probably a name for it in higher levels languages (and I’ve done it manually in C), but I don’t know what it’s called. So, these functions would serve a purpose that an immediate request could not handle, as well as assigning multiple function requests that run as background processes in parallel of each other. I.e. game logic stuffs.