Localization Legend "Supper the Subtitler" has "joined the club" in being targeted for CD-pressings by bootleg master Tobias/PCEWorks! His projects like Private Eyedol, Galaxy Fräulein Yuna 1 & 2, etc. are now being sold on Chinese factory-pressed CDROMs...
IMG
Main Menu

NES2PCE - "Enhanced"

Started by Sarthax, 11/03/2026, 12:37 PM

Previous topic - Next topic

0 Members and 0 Guests are viewing this topic.

Sarthax

I just wanted to throw this out here. I'm a life long PCE fan with a fairly large collection of consoles and games except for an LT and shuttle and the other rare crap.  I was about to get the PI-AD3 Print Booster plotter but wisely decided against it LOL.  Even got my Supergrafx and one whole game for it.

That said, I'm not a programmer, but I've followed a lot of the PCEDEV work TurboXray has done and was playing some of his work and my tism and OCD just compelled me to fix things that have been wrong forever and modern AI tooling has made this a lot easier and possible. 

I'm currently working to fix all of the NES2PCE wrappers or shims for the released work by TurboXray and have successfully built a workbench to analyze candidate roms based on mappers and mmcs and find where memory addresses are calling tiles. 

I currently used the SMB NES2PCE pack as my research project and sounds have all been fixed as the old ports were missing wave sweep on the square wave channels and were full of volume pops and early effect cut offs. 

Core Engine wise, fixed the workspace after VBLANK where tile and bank switch occurs so it happens during wait states inside the draw to screen and now allows for the "enhanced" portion.  Previously TurboXray actually cut the amount of lines down to 218 instead of 240 as a means to buy some room to do his tile conversions.  This Caused a loss of 1 and a half sprite of data on the bottom. for some games it's no big deal, but certainly not optimal and in some games ruins lower HUDs.

We now have enough cycles and free lines to actually change the amount of channels used by adding 2 more square wave channels and possibly ADPCM to old NES titles as well as make the sprites larger and larger color depth for a true custom TG-16 experience.  I've seen Mesen HD packs and they typically are trash so I'm inclined to not pursue unless there's a good candidate.  I was thinking of using sprites from SMB All stars and seeing if we could port those over in 4bpp better palette.

As a test candidate I was able to separate out CH0 music and sound combined channel on Super Mario Bros and move the sound to channel 3 and 4 is unused.  This opens up possibilities of enhanced music or stereo for older titles.  I've seen some really incredible PC engineering sequencing work for covers of other titles that could open up some really cool options for music.  Here's a sample of Journey to Sillius on PCE arrangement showing what's possible.
I'm not sure if copyrighted roms are allowed here and I assume no. so not sure how to get these to you guys other than directly and I don't want to get banned so what are the options?  I'd like for someone to take a look and see what they think and if this is something the community would like and which games I should look at first.

I have Excitebike ported down to PCE (still tweaking sound a little) and working on Little Mermaid and Solstice as test candidates due to them being NROM or UXRom and no MMCs and easy mapper setups.  Later I'll work on wrappers for MMC1 or MMC2 games.

Currently working from decomp assembly to help analyze and fix some issues, but it works with raw NES roms.  there is more than enough overhead to complete the bank switching or per bank title as we have 8 banks to work with so we can make shortcuts and make premade banks with additional tiles for enhanced graphics.


EDIT:

I packaged up the patches so users can apply to their own roms and test as well as detailed all the fixes and trial and error we had along the way and why certain decisions were made.

No ROMS are included, you must seek our your own NES2PCE SMB V2.1 or the original raw iNES NES ROM by CRC or SHA-1 for both SMB and Excitebike.  This is the patch only

It checks the ROM against the required size (40,976 bytes), CRC32 3337EC46 and SHA-1 ea343f4e...0922. A wrong ROM is rejected; I tested that.
It regenerates the port's data file (SMB.bin) from the ROM: PRG unchanged, raw CHR, converted sprite and background tiles, and $FF fill.
It assembles the port source with pceas.exe. The result is byte-identical to the stock SMB PCE 2.1 image (SHA-1 2599098c...e71), and the build stops if it isn't.
It then applies the V29 (audio and graphical fixes)patch. These are as far as I was willing to take the project for now as a proof of concept that the fixes work and were repeatable.  I make no claims for 100% accuracy compared to the original game but it's night and day difference to what we had from Image SMB and TurboXray SMB.  I hope everyone enjoys and I hope to showcase a few more patches soon.


NightWolve

Hey, thanks for joining and sharing! I'm glad someone is continuing the NES2PCE legacy work by TurboXray!

I wanted to see NES games like Mike Tyson's Punch Out get ported with PCE color upgrades.

>"not sure if copyrighted roms are allowed here"

Nah, post any ROM links you want! I'm too old to care or worry, heh. It adds some relevancy to keep the forum going if PCE fans can find working links to stuff!

Sarthax

Hey NightWolve.  Thanks for the warm welcome.  I joined last year when I needed some help with recapping and trimming laser posts on a Duo and Duo RX last year and lurked a little and never really posted.  I love the wealth of knowledge that's been accumulated here.  Especially the dev and repair side, this is stuff that you just can't find anywhere else.

I'll be happy to take a look at punchout for a conversion.  I'm working on gunsmoke right now and it's being a bit of an ass due to the CHR-RAM switching due to the vertical scrolling and some read/write paths erasing the tiles that have been accumulated so things show up blank or incorrect on every other row so it's fixing it in one location at a time in the game making it slow going.  It's not a global fix.  That said, this is exactly what makes Punchout an easy next target since it unloads and switches banks halfway down the scan field when loading in the fighters and little mac with different banks and tiles.

As far as enhanced graphics, it's 100% possible to do it's just a matter of getting those sprite sheets updated.  I've found some resource sites that have sprites for alternate overlays on Mesen that could be promising, but a lot are PNG formats and not what we need and have to be converted.  I've already built a workflow for this in my tool but have not used it much other than loading HD mesen packs, checking for 2bpp to 4bpp conversion. No color palette work or interpolation on the pixels etc.

Using the increased color depth and resolution of the sprites is something that will be interesting for sure.  Rather than making a generic port, being able to make something unique to the PCE running on native hardware will be something else.  I wish I had the depth of knowledge some of you guys have, but I'll work with what I've got.


I've added VGM decoding of the registers and channels and writes so music could be created and imported.  That's all new work for me though as I'm not an audio guy or programmer as I mentioned.
I'm not sure what challenges I'd be facing.

I've already ported out Tennis and Donkey Kong but still have sound work to clean up but 100% playable.  I needed to cut teeth on some easier NROM carts and get workflow going.  Lessons learned are making future work much much faster and easier.  While no source code was release for the Mega Man ports TurboXray released, it was able to be decomped and we have the PPU.ASM used for bank switching so it's a good foundation and speeding things up with more complex memory mapped games.  This stuff is not plug and play however, each game needs fine tuning or in some cases major rework. I think once we get a few more done it will give a good template and library to work from and speed things up more.


I looked over forums last night and saw a lot of people clamoring for that Dragon Quest NES2PCE.  Was that ever released?  Also zelda, Milon's Secret Castle, Blaster Master, and Guardian Legend.  I will be looking into those as well.  All classics I played as a kid.

I can post the source for the work as well as a precompiled rom if you're really ok with that.  I was trying to be careful and not get ban hammered.  Either way is fine though.  I know TurboXray was rightfully pissed about people taking work and selling Mega Man as some rare collectable CD.  I saw someone working on a NES2PCE splash screen using a preloader so people know they are getting ripped off.  Is that something I should care about in this day and age? 

NightWolve

Ah, GunSmoke, that was a fun game! But, technically, more fun playing the real arcade version on a MAME emulator.

Yeah, it's gotta be what you enjoy working on, are passionate about, otherwise you'll get bored with projects like these. They're harder to justify than say a localization where you'll get to play the game in English for the first time versus just moving a port around to a niche platform because it was an underdog that didn't get much 3rd party love back in its heyday.

Yes, we have Dragon Warrior NES2PCE floating around somewhere in PCE ROM collections that TurboXray Tom released himself. If you wanted an RPG maybe go for the sequel. Or OG Final Fantasy?? I don't think that was ported.

The significant justification I saw for NES2PCE was being able to play Contra NES on a Turbo Express full color portable via Turbo Everdrive flashcarts. Just doing it for emulators or real NEC consoles for TV is a novelty if you have the time to kill. But yeah, seeing some of the best NES games play on a Turbo Express is a real treat, not just a technical demo or what-if.

Sarthax

I wanted to do enhanced sprites, but there is something kind of sacrilegious about this...  This is the weirdest frankenstien's monster.  NES Mario on PCE using SNES sprites of a remake of the original SMB from NES.  What have we done.

So proof of concept really, adding new banks and pointing to them and holding select on boot toggles enhanced mode on a ported title so the PCE rom can contain both original and new graphics and sounds.  I'm half done with the sprites and need to re jigger some more but you get the idea.

I get you, in this era we have pocket handhelds that emulate up to PS3 so the novelty of NES2PCE is kind of diminished. I wanted to bring some value other than a straight port, but this is looking just too weird and there are probably easier ways to go about this.

If you have the DW port and can DM it over that would be cool, I don't have it in all the wayback machine links on PCEDEV or Internet Archive pack I found.  I could see that being a better candidate for enhancement.  But hey, it's been done better already by now.  https://rpgmaker.net/games/4058/

I know there's about 10 people in the world who would even want NES games on a PCE so the juice is not worth the squeeze as they say but hey, it's all in good fun.

Sarthax

Oh I forgot, Super C was one of the titles being ported also, so more portable fun if you want :D

NightWolve

Sure, I'll try to find the Dragon Warrior ROM next time I fire up my desktop PC. I'm sure it's on there or on my microSD card for the Turbo Everdrive. I'll edit the link back in here. I recall Bernie gave it to me, a cool PCE Turbro who faded out, deleted his social media for personal reasons so he's hard to reach. Scratch that, it seems I tried to acquire it from Bernie in ~2022, but I guess he couldn't find it for me... That Dragon Warrior NES2PCE is lost media unless we can find someone who got it, I asked TurboXray himself. Here's a recent link of him talking about it on nesdev.

In the meantime you can find Contra, Castlevania, MegaMan 1&2, Jackal, etc PCE ROMs that Tom did in his @TurboXray (<= click) profile link where I made a special Wayback recovery tribute so his work wasn't lost. It was a few hours of collecting some of his history as a best-of collage which I randomly did to some profiles of special contributors.

UPDATE: Made search progress. So now I DO, vaguely, remember downloading this particular ZIP file from somewhere! Anyway, I mirrored it to my server:

pcengine-fx.com/downloads/DragonWarrior_PCECD.zip
http://www.turboxraypce.org/PCE_uploads/NES2PCE/DragonWarrior_PCECD.zip
Since there's no working save feature you use his cheat:
QuoteBecause there is no save feature (nothing is written to PCE BRAM), I decided to add a cheat. If you press/hold run+select+right, the game will give you 10k gold and level 15. You will see the gold immediately, and this is let you know it worked, but you won't see the level increase until you encounter an enemy (because the game does the level check during combat) - you will then be level 15 will all the spells for level 15. Warning: if you are a higher level and use this cheat, it will revert you back to level 15 with 10k gold. But if you still level 15 and spent most of your gold,  you can use this trick to replenish your gold. It does not give you new items or such - just gold and level 15.
http://www.turboxraypce.org/PCE_uploads/NES2PCE/readme.txt

Lastly, @SuperPlay saved all the other common NES2PCE builds in one ZIP, found that too:

tg-16.com/superplay/MISC/pcedevnes.zip

Sarthax

Thanks for the DW link. as a proof of concept, I did manage to get BRAM save working on it.  I've only used it on emulators with software BRAM banks and not original hardware or ODEs.  So I'm worried it could affect actual BRAM but it's working on CD System cards 1.0, 2.0, 3.0 and no issues with the BIOS entry points at fixed addresses ($E04B/$E04E/$E051) I did not test a Super and Arcade Card. I've done as much testing as I can and am fairly confident it's working without affecting other BRAM slots but be careful.  It took 2 days of back and forth with this and working on a solution.  I originally had the ingame King NPC provide a line of text about the BRAM being full, but removed it since it was causing some other dialogue issues. So a full BRAM will silently fail to save.
now all future ports can use save files and I can implement this hook and SRAM to BRAM conversion.

I was working on fixing the missing noise channel 5 but it's causing me more headaches than it's worth. So that entire channel is disabled in this version, sorry.  Fixing the missing noise for stairs implements a static effect for menu text and npc dialog text so I took it out pending a new working HUSFX and native PSG engine I've been cooking up.

Currently sound is a fine tune per game and every single game has different envelopes, sound routines etc.  Making a library of shared "engines" that can translate the actual 6502 APU output into a direct to PSG native sounds for the enhanced sound portion of the NES2PCE Enhanced.

After that it's a audio pipeline work. Project AI summary of the audio workstream and functions so far.

**Current Audio Pipeline and Supported Formats:** The NES2PCE Workbench audio toolkit supports MIDI → DMF (DefleMask) → HuTrack `.inc` assets → native PC Engine PSG playback, with up to six simultaneous music voices demonstrated in standalone ROMs. NES APU captures can be converted into prepared HuSFX sound-effect streams, while VGM supports PSG analysis, register diagnostics, and limited generation. WAV/PCM → PCE DDA sample conversion and standalone playback are functional, with one PCM channel recommended and dual PCM experimental. WAV/MP3 → note transcription → monophonic PSG/VGM is also experimental. Outputs include HuTrack music, HuSFX effects, PSG/VGM data, PCM assets, standalone `.pce` ROMs, and experimental game-integrated builds. These capabilities exist across multiple tools, but not all are fully integrated into the Workbench GUI or validated end-to-end.

**Remaining Development and Integration:** Research demonstrated how original NES 6502 sound-driver logic, APU register shadows, and Sunsoft 5B audio can be translated into native PCE PSG output. We've implemented foundational channel allocation, priority, ownership, and experimental sound-driver hooks in Excitebike and 1942. Remaining priorities include identifying reusable NES sound-driver families; developing shared envelope, sweep, length-counter, pulse-duty, triangle, noise, and expansion-chip libraries (5B, N163, MMC5); completing SMB's five-voice HuTrack/CH5 HuSFX integration and 1942's native audio wrapper; and improving PSG/PCM coexistence and music/SFX handoffs. Future capabilities include VGM → HuTrack, WAV/MP3 → multichannel PSG, PCM → PSG approximation, and HES import/export. **The long-term goal is one unified Workbench audio-conversion pipeline with reusable drivers, game-specific adapters, and batched gameplay validation**, replacing separate experimental workflows.