Archive for the NES2PCE Category

Posted in hacks, Megaman, NES2PCE, retro on February 4, 2014 by pcedev

No title to the post. Megaman stuffs…

Anyway, I got all the sprites for Cutman’s stage done. That is to say, all the new sprite sheets are in order. Hacking the room loading routine is next. I’ve already traced through it more times than I care to admit. I might be pretty fluent in 65x, but that doesn’t reading/understanding someone else’ code is easy.

The game makes it easy though. The game breaks down a sprite/palette load for a given room, over about 40 frames. That slow pan up or down, left or right, it’s updating vram sprites (which is why all sprites except megaman/score/powermeter are turned off). The game divides a level into 16k banks. There’s a variable for ‘currentlevel’; the game grabs this, maps it, uses the ‘current room’ as an index, and reads from a table (this table is in every level and in the same spot, just different values corresponding to the level), then maps in the tile bank and transfers to vram. All my hook needs to do, is get ‘currentlevel’ and ‘currentroom’, and the rest is just loading my own graphics to vram.

That part is fairly easy. The problem I’m running into now, is that there’s no room left in the ’emulation’ bank. There is where all the apu/ppu/mapper emulation code is. Since this is a fixed bank, this is also where my hack code and tables are. As of yesterday, I had to move all the enemy sprite sheets (object information, not the cell data) to another bank. Even with that, I’m left with 500bytes free in that 8k bank. So now I’m tasked with creating a second ‘library’ bank for code, and move non essential code to there (APU reg write code, PPU reg write code). I’m taking a note from the NES games, and duplicating the TIMER and VDC/NMI code into the second lib bank at the same place. That way when I swap in the far bank, the interrupt code still behaves as normal.

Eventually, I’ll won’t be needing the APU and PPU emulation code anymore. Actually, I soon plan to convert the sound FX in the game to a different format. Something along the lines of VGM format. That is to say, the sound FX will be streaming port writes at 1/60 tick (anything higher seems wasteful). It takes up very little room, compresses easily (and light on cpu resource), and allows me to make new sound FX outside of any music/sound engine design (and I don’t have to worry about a new PCE sound engine having legacy support too). Though OAM emulation will probably be the first to go. Once all the sprites have been converted over, I won’t need NES OAM (SAT) emulation anymore. That’ll free up a little bit of cpu resource. The tilemap code will probably be one of the last to go, leaving the game completely native PCE in execution (albeit limited to game logic).

But back to the ‘currentlevel’ and ‘currentgame’ variables. Knowing these two, I can create new stages. I just need to hook the bank changing routine for the higher level #’s. I want to add in two more Robot Master levels. Not MM: Powered Up levels, but something unique to this PCE version. That also means two new items or weapons. I figured I’ll probably make them ‘item-ish’ rather than weapons, as that would be harder to balance the game with new weapons. Or maybe new ‘moves’, like slide and charge power shot (you won’t need to ‘equip’ them). I do want to make a weapon/function that’s equivalent to ‘enery tanks’ in later MM games. I figured something along the lines of; convert weapon energy to health. And depending on the difficulty of the game setting, will be the ratio of transfer from energy to health.



Posted in hacks, Megaman, NES2PCE on February 2, 2014 by pcedev

The replacement hook for new sprites is working great, but the game loads new palettes and enemy sprites – per room load (small breaks in the level). Took me a bit, but I figured it out and how to hook it. This is important, because my hook needs to load the alt sprite graphics and palettes for ‘rooms’. Things are coming along nicely for the sprite upgrades. Much faster than I had originally thought.

I can also use this hook, to identify when a new room is loaded, and thus call my special foreground/background effects hook based on this. Since I’m reducing sprites to large than 8×8 cell segments, I’ll have more SAT room for these ‘effects’. And since the sprites are not made of less segments, I’ll have a much-much better sprite-pixel-scanline setup for this as well. Annnddd, the new graphics actually take up less vram than the emulated NES ones – so more vram for said ‘effect’ sprites.

Megaman CD update

Posted in Audio, hacks, Megaman, music, NES2PCE with tags , , , , , , , , , , , , , , on January 27, 2014 by pcedev

Since I had to fix the easy/normal bug, I figured I’d clean some other stuff up as well. The CD setup is now distributed in two packs; CD music pack and Cue/Iso pack.

I got rid of all the non-megaman CD tracks (place holders). So everything is Megaman related now. The title screen now has its own track (haha – it’s awesome) and the original game title screen is gone (goes from the new title screen to the stage selection screen). The tracks are now appropriately named, so replacing them with whatever you want – should make it easier. Uploaded and available in the Download and Links section.

Also, I probably won’t be making any updates to MM1 for download – for a while. I’ll post progress, but there’s no real need to upload every time something small is added. I am happy with the state that it is in now; the next public release should contain some major upgrades.

Megaman 1 hucard Title/Options version uploaded

Posted in hacks, Megaman, NES2PCE with tags , , , , , , , on January 26, 2014 by pcedev

For those that want to play it via hucard. It has all the options of the CD build. The stereo separation setting have a greater effect now, since it also applies to the music as well. Ch0= square 1, Ch1= square 2, Ch2= triangle channel, Ch3 = noise channel.

You can get it from the Download and Links section.

Edit: Also, for the CD version; Easy mode and Normal mode are actually inverted. So Easy=normal and normal=easy. Sorry. Last minute change and I forgot to update the damage handler. The hucard version is correct though. I’ll upload a new data track soon. I plan on splitting up the CD version into two files; the cue+iso and a separate file for all music tracks. This upload speed to the site is killing me :/

Megaman hucard update

Posted in hacks, Megaman, NES2PCE with tags , , , , , , , , , , on January 26, 2014 by pcedev

I’m going to make a build of the hucard version, with the new title, menu, and options. The stereo pan channel setting should have more of a purpose too.

That said, I want to do the same for Megaman 2 hucard project. Anyone have any ideas for a title screen for this one? I.e. It’s not limited to NES format.

Also, I’m going to start uploading just the data track ISO files for CD project updates. I have a few upgrades in mind for MM1; expand on the 6 button support for fast weapon changing, add auto weapon energy capsule refill to first non equip weapon with the lowest energy, and add the slide feature of the later MM games. I’m toying with the idea of adding a power up charge shot as well, but that’s gonna take some additional hacking.


Oh yeah, almost forgot: I’m looking for a chiptune artist to redo MM1 songs in native PCE chiptune format. I’ll provide the sound engine and format. Pass the word along, if you can.

Megaman CD 1.01

Posted in hacks, Megaman, NES2PCE with tags , , , , , , , , , , , , , , , on January 25, 2014 by pcedev

Some new goodies in there (read the video description). Upload is taking a while, but will be available in the Download and Links section, once it has finished.

Edit: Game is now uploaded.

Megaman 1

Posted in hacks, Megaman, NES2PCE with tags , on January 21, 2014 by pcedev

Adding 6 button gamepad support to Megaman 1 CD release. For right now, all it does is not wig out in 6 button mode (it would, before this release). But later on, I’m gonna make it so that it does quick weapon select instead of using the pause menu. Dragon Warrior could benefit from this as well. I’m gonna put that on the list of things to do for DW.