Archive for the music Category

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.

Stack here, stack there, every where a stack, stack…

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

I’m cleaning up the CD track play code, for NES2PCE CD games that use the CD play command. Though, this would also come in handy for hucards with hacked CD play commands as well.

Originally, I called the CD play command when the game code called the ‘play psg track’ subroutine call. But I’ve been thinking; this will throw the game code out of sync of the vblank interrupt. Megaman doesn’t seem to care, but it could result in a rare occasion that if they get out of sync of each other – glitches can happen (from simple graphic stuff, to anything else – really). And not just Megaman, but Castlevania and Dragon Warrior (yes, both are getting the CD play treatment).

So, I came up with a method to set a CD play request via an internal flag. On the first encountered vblank, which is handled as a higher level backend emulation code (which calls NES nmi code after doing some internal stuffs), looks for this flag. So the actual CD play request happens inside the start of the vblank interrupt routine.

I reserve the original ram bank $F8 for sys card stuffs, since it’s already initialized by the system card, and I swap this back in. As well as the hardware bank (where it needs to be for sys card stuff: $0000 instead of $6000) and the sys card interrupt vector bank ($00). From that point, I can simply call BIOS routines as if I’m directly working with a normal CD project.

The tricky part; hardware stack management. Thank god for TSX, else I’d have to write some hairy stack pointer position identification code – no good. But, I do have to manage two hardware stacks. Since a different bank of ram is now mapped into the stack area, I need to update the stack pointer with that corresponding pointer. Things get a little hairy – hee hee hee heeeee. But it’s just crazy enough to work ๐Ÿ˜‰

Anyway. I have to disable the TIMER IRQ such type of management as well, since sys card setup has a different interrupt vector setup. I mean, this whole thing happens *inside* a vblank interrupt (of a different ram bank and hardware stack pointer), but needs to run though it’s ~not~. Plus, I made a ‘CD busy’ system screen for when it requests a track play – so the screen doesn’t look like crap on long(er) pauses (real system). And to animate this ‘icon’, I need vblank interrupts on the sys card side ๐Ÿ˜›

;>_> Yeah…….

Megaman 1 Redbook version (easy mode too)

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

I uploaded the CD version of Megaman, that uses redbook tracks instead of PSG. It’s a cue/iso/wave set. I also included the new ‘easy’ mode hack in it (you can’t turn it off). Basically easy mode (so far), is that enemies/bosses do less damage to you. Damage is now (damage/2)+1. Everyone complains about how this is one of the hardest Megaman games. I disagree; I think it’s super easy. But, in the end, I want people to enjoy the game and the hacks/whatever. I’m also looking for people to play/beat this on the real system (I have yet to fix my CD unit), just to make sure everything is working correctly on the real hardware. Post a comment here, if you can (if you’ve tested it for me).

I included some megaman alternate musics. But I didn’t have enough to do the later Dr. Wily stages, so it’s just filler tracks there (Gradius 2 IIRC). Feel free to change out the WAVE files (tracks) to anything you want. I use ‘track’ more to play the redbook stuff, so you don’t have to worry about the length of the tracks/wave files.

I’ll eventually make a boot menu, so you can select Easy mode or normal mode. I wanted to hack some the level maps for Easy mode as well (maybe make a few platforms for areas that have infamous pitfalls and spikes), but I’ll need feedback for that (because to me, the game’s already easy).

You can get it at the download and links section, or this direct link:


Posted in Audio, hacks, Megaman, music, NES2PCE on January 9, 2014 by pcedev

Uploaded the wrong megaman 2 file. New file is here:

APU, megaman 2

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

The new APU code is coming along nicely. Here’s a sample;

There’s no sweep emulation yet and megaman 2 didn’t have glaring audio problems like some other games, but I did add stereo separation to the two pulse channels. Sounds kind of nice. Super Mario Bros, Ducktales 2, Robowarrior, Castlevania, etc. They all sound better as well (minus any sweep problems). I’ll upload new versions of those, when I get sweep emulation working.

Improving APU code

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

I was working on improving the APU side of the nes2pce projects (audio emulation). I’ve kinda neglected this for a while, so it’s time to sit down and get it more up to speed with the rest of the backend code.

In the process, I decided that I wanted to do some stereo separation of the channels. But I couldn’t quite figured out what sounded best. Sometimes it sounds best when all channels have hard left/right separation and somethings it sound better when onlyย  the lead channels do. And at that, the volume levels sound better at times – louder when hard panned left/right. As I have it right now, most of the channels are not full volume. Only the triangle is (because it’s a soft sound). The leads are set at ~66% volume, triangle at %100, and noise at ~45%.

What I’ve decided, is that I’m gonna let you guys decided. In other words, I’m gonna do a menu at start up that lefts you configure it for the game (for that instance). I’ll add a few quick preset modes, classic mode, and a fully customize mode.

For games that don’t use DPCM (which I’m probably not going to emulation per se, but I will hack support for those samples into each game individually. Jackal and Castlevania are two that need it), I’m going to add the option of allowing ‘echo’ of the two pulse channels – on the two spare PCE channels. I’ll have presets for this as well, and custom control for it. For games that support it, I’ll add an option to sync the echo to the tempo of the current playing song.

I have some other ideas as well. One is to allow sound FX to play on the spare channels, rather than interrupting the main music channels. Some people have thought this was the case already, lol – but it’s not. I have improved nothing in any of the nes2pce releases – as far as PSG sounds go. If you think they sound better, couldn’t tell ya why. Anyway, this is also highly game dependent, but from what I’ve done with Megaman 1 (redbook hack with PSG sound FX)- I think it would be fairly easy to do with other games.

I’m still working on the echo code. So I don’t know exactly how it will sound, but I will put in the option of how long the delay is for the echo channels and what volume they should play at. Right now, I have the max delay available at about 1 second (60 frames), with the minimum at one frame. 1 second is kind of overkill, so I might shorten that to 30frames as the longest (half a second).

Not exactly APU related, but I had also thought of an idea to let players control a ‘slowdown’ option. Aka, introduce fake additional overhead back into the game. These nes2pce conversions tend to run much faster than the NES counter parts, simple because the processor on the PCE that’s running the NES code (literally) is running full 7.16mhz. Even with the backend emulation code overhead, it still comes out faster in the end. I first noticed this in the Megaman games; no slowdown. Jackal also has a lot of slowdown on the NES that’s absent from the PCE conversion – actually making the game harder – lol. Of course, this isn’t a high priority for me right now. Flicker of course, is an entirely different matter all together. The flicker is.. in a way, artificial. But I don’t have any real control over this. Both SAT (sprite attribute table) length and scanline pixel limit. To emulate NES sprites, I waste a lot of PCE sprite bandwidth. While it doesn’t introduce ‘more’ flicker, sometimes (like Megaman games) – there’s no benefit. Games that use NES 8×16 sprites get a nice benefit – but it’s not full PCE bandwidth. Of course, if you guys really cared about this – you could just play the roms on a PC emulator and turn off the sprite limit.


Posted in Audio, Megaman, music, NES2PCE, translations, Uncategorized, WIP Game 2012 on May 12, 2013 by pcedev

Welp, seems like my idea of raising money for the summer off to just code, code, code… probably isn’t going to happen. Too short of a notice and not really anything to show for it. I’m still gonna do an Indiegogo project for this, but I’ll also setup a straight paypal donation button for people that don’t care for such fund raising sites (they take a small cut). I’m gonna dedicate as much of free time for this summer into getting two projects completed.

Yes, two projects. I’m completely dead set on doing a Megaman clone, but I’m also gonna do a shmup. Why a shmup? Well, I just looked over my engine that I was working on last summer and realized that it’s quite far along. It would be a shame just to abandon it. So, I’m gonna work on both for now. The shmup will be a pretty short game. Probably something that I can show off, for the fund raising and such. I’ll probably make it free download, but if I have some time I’ll do a hucard release (yeah, I’m still working with plastic injection molding for a hucard project) to help raise some funds; they’ll be made by hand and so they won’t be cheap. Just a limited run for people that want something like that.

So yeah, Megaman clone is the primary project. I think, because I’m not gonna set September as the deadline, I’m gonna bring on some other artists as I progress much further along. For the shmup, I’ll most likely just do the graphics myself; tribute style graphics/music/etc.

Free time is pretty minimal right now – working my ass off. I borrowed $1200 to pay rent, so I need to work some crazy hours to pay that off and restore my short term savings. I wish I had a stable job and not this under-the-table-iffy-might-have-work… work. Tucson was hit hard by the recession and is slow to recover, on top of the already normally lower pay scale for city compared to Phoenix/Metro. Sometimes I really hate this town – hah! But I digress…