[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/vr/ - Retro Games


View post   

File: 346 KB, 645x471, 1385493385098[1].png [View same] [iqdb] [saucenao] [google]
1225772 No.1225772 [Reply] [Original]

A person is creating ports of NES games for the PCE.

http://www.romhacking.net/forum/index.php/topic,6894.0.html
http://www.youtube.com/watch?v=gKm9vFveAUc

Why would this matter you say? Well, other than avoiding at least some of the problems of the NES console (non-standard color pallette, slowdown, sprite flicker etc) you can have enhancements. The PCE allowed for CD audio, higher quality sprites and graphics. I wonder how far they could take it? Imagine Castlevania 1-3 with Rondo of Blood quality sprites and arranged soundtrack?

This guy is already changing the sprites in MM1:
http://www.youtube.com/watch?v=27i7xeZHpeI

Downloads:
http://pcedev.wordpress.com/downloads-and-links/

I had no idea this was even possible without source code.

>> No.1225783

so basically it just ends up being a shitty ugly fan remake with bad music? what's the point of this?

>> No.1225782
File: 17 KB, 640x480, RetroArch-1126-083600.png [View same] [iqdb] [saucenao] [google]
1225782

>>1225772

Castlevania works but with major glitches. Sound is off, screen isn't centered.

>> No.1225786
File: 13 KB, 640x480, RetroArch-1126-085439.png [View same] [iqdb] [saucenao] [google]
1225786

>>1225782

MM2 works better, but it still has sprite flickering.

>> No.1225793

>>1225783

This is likely WAY more trouble than its worth. Still interesting. What you can do is port the games to the PCE and presumably make it so that you can't notice any difference. From there you can add enhancements.

The PCE was a much more powerful system than the NES. It had a much bigger color palette. The NES also annoyingly didn't have a proper color palette and instead relied on the TV to decode it. So NES games look slightly different from each TV. emulators end up having several color palettes to choose from. This avoids this.

Since it's a CD based system, you can replace the music with anything. So you could add an arranged soundtrack. Replace the sprites. Or simply recolor the game to make use of the larger color palette. You could do a lot of things.

>ugly fan remake with bad music

That's up to the quality of the sprite makers and the music makers.

I'm just really surprised this is even possible. My understanding was that you needed to have a game's source code before you could think of porting it to anything else. I guess the NES and PCE both make use of 8 bit assembly code? If so, I wonder why there weren't more NES ports to it? I still label this as "likely way more trouble than its worth" hwoever.

>> No.1225794

Castlevania 1 ver 0.44
Contra ver 0.35
Ducktales 2 ver 0.31
Megaman 1 ver 0.98 ROM only
Robowarrior ver 0.27
SMB 1 ver 0.21

Megaman 1 on SCD ver 0.98 (game only)

Megaman 2 for hucard ver 0.87 (game only)

>> No.1225812

>>1225772
>Well, other than avoiding at least some of the problems of the NES console (non-standard color pallette, slowdown, sprite flicker etc) you can have enhancements
This just begs the question: why not port it to PC then? Translate the 6502 routines to C, alter the data structures and associated code to something more moddable, and you've got a fully working game that can be altered in any way without the limits of the NES.

>> No.1225816

Contra's music works. Sound effects not so much. An annoying sound each time you fire or kill something. Screen is not centered. Rather impressive for how early in development it is.

He seems to be focusing his efforts on MM1 and MM2 first.

>> No.1225818

>>1225812

I'm not a coder. I really have no idea. Is it even possible to port an NES game to PC? I thought you needed source code for that sort of thing, and the source code for most of these old games was lost 25 years ago. That's why most ports of these old games rely upon emulation.

>> No.1225827
File: 12 KB, 640x480, RetroArch-1126-150337.png [View same] [iqdb] [saucenao] [google]
1225827

>>1225816

>> No.1225830
File: 15 KB, 640x480, RetroArch-1126-150824.png [View same] [iqdb] [saucenao] [google]
1225830

>>1225827

>> No.1225837

Try porting Journey to Silius
And while I'm on that topic,how do I beat the 2nd stage boss?The tank.

>> No.1225841

>>1225818
You can port anything to the PC if you're determined enough but the game will have to be completely rewritten underneath.

>I thought you needed source code for that sort of thing, and the source code for most of these old games was lost 25 years ago.
Most old games including NES games were written in assembly with some peculiar instructions sprinkled in. The source wasn't really "lost" if you disassembled the game you'd have the source code right there, assembly is nearly machine code. What was lost were the prototypes which were used during the production of the game.

>> No.1225845

>>1225841

You'd need documentation on the games though. Otherwise you'd be lost in the forest of the code right?

If it was so easy I'm sure that people would have done it before.

>> No.1225858

>>1225818
I can program in 6502 assembly, although I'm obviously not an expert. The way it works is that the NES is such an underpowered machine, most programmers directly coded the game in assembly. If you perform a disassembly on the raw game data, in other words find out what is code and what is data, then you practically have the original source code, barring symbolic names and comments.

Decompilation, the translation from a low-level language to a higher one, can as of yet not be done automatically or with any tools. However, an experienced programmer versed in both languages, with the disassembled code, should be able to figure out what each subroutine does and write code in the other language that semantically does the same thing. The only thing that's difficult to preserve are glitches, since those are usually exceptions and highly machine specific. It helps that NES cartridges are ROMs, so the biggest hurdle of decompilation, self-modifying code, is nonexistent.

The biggest factor against ports like this is time, since it takes an extraordinary amount to even figure out what the entire game is doing at any given moment, much less translate it. But if you have enough time on your hands to port it in the first place, which includes figuring out how it works under the hood even if you don't have to change the actual cpu architecture, you should have enough for this as well.

>> No.1225861

>>1225845
Well I'm sure the code is quite messy after being disassembled since it doesn't preserve formatting or anything like that but people do work their way through it.

>If it was so easy I'm sure that people would have done it before.
Well it's not really "easy" but it's possible. People do it for translation projects I believe

>> No.1225863

>what's the point of this?
>This is likely WAY more trouble than its worth.
Both the PC Engine and NES had 6502 variant CPUs with similar (identical?) instruction sets, so apparently you can cut out large bits of an NES rom and have them run natively on the PCE.

>> No.1225870

>>1225863
Unless the internal registers and sounds and graphics hardware are identical too, there's some serious lifting involved in getting it to run, since you'll be tweaking and plain out rewriting at the very least a quarter of the code.

>> No.1225874

>>1225863

Yeah, that's what it sounds like.

> This a project to hack the original NES rom to run on the PCE. This method simulates/translates the PPU, APU, IO, and MAPPER on the backend of the system while the game code runs natively on the PCE's CPU. Writes and reads to I/O ports are replaced with JSRs. Once the game is up and running smoothly, additional modifications can be added like; upgraded audio(CD audio if CD project), 16color tiles/sprites, 512 color palette, bigger sprites, bigger sprite per scanline limit, up to 32megabit rom(if hucard - 600megabytes for CD), etc.

>>1225858

This sounds like a lot less work. This project has only gotten such little progress in 4 years simply because it's just some guy.

If you were "porting" to PC, it would probably make more sense to just create a native PC game with a game engine that mimics the original game. Would be so much easier and less work. Could then either import graphics/sound or remake them.

This would be pointless for game companies, since if they want to remake their games, they'd just start from scratch.

>> No.1225882

>>1225874
>If you were "porting" to PC, it would probably make more sense to just create a native PC game with a game engine that mimics the original game. Would be so much easier and less work. Could then either import graphics/sound or remake them.
That's pretty much how ports work. Even if you could just use the original source code you'd still want to rewrite portions of it so it runs optimally on the target platform.

>> No.1225901

>>1225874
>if they want to remake their games, they'd just start from scratch
Most of the time yes, but not always. There was this story about Bluepoint Games, who made the MGS HD Collection, where they didn't have the original source code to the games. So what they did was disassemble the rendering code, and from there translate everything bit by bit to the current engine, making sure it was true to the original as much as possible.

It's sometimes beneficial to do it this way instead of figuring out everything by observation. For example, many fangame Mario recreations cannot into rounded corners and smooth acceleration and deceleration, which are very important to platforming. If they knew the underlying code from how the original game handled it, they could use it as an example, and thus make better games.

>> No.1225923

>>1225901

They lost the source code for SH2 and SH3 yet they managed to completely screw SH HD up. Complete incompetency.

>> No.1225940

>>1225923
They did have the source code to SH2 and 3, but they were pre-release snapshots, made months before the finished build. It didn't help that Hijinx Studios were a bunch of technically illiterate amateurs. What can I say, bad devs will be bad devs.

>> No.1225941

>>1225772
>>1225793
>>1225818
I'm sure this is being done via a custom emulator for the PCE that allows for sprites that are beyond the NES's capabilities. Basically it's done in the same way romhacks are done, but with a specific emulator in mind. Whoever wrote the emulator did the hard part. I'd be willing to redo some sprites for a project like this.

>> No.1225973

>>1225941

Nope. He's aiming for this to work on a real PCE, and its been tested on real hardware. It's being tested in the Mednafen emulator, since it's the most accurate PCE emulator right now.

>The PCE is backwards compatible with the NES instructions, so I can let the original game code run natively (with exception to some timing).

>> No.1226026
File: 5 KB, 640x480, RetroArch-1126-162724.png [View same] [iqdb] [saucenao] [google]
1226026

SMB1 is not playable now. 0.21.

The music is messed up, but more importantly the physics is not working right. You can't jump very high and can't clear the first pipe.

>> No.1226047
File: 6 KB, 640x480, RetroArch-1126-162724.png [View same] [iqdb] [saucenao] [google]
1226047

>>1226026

Really curious how the ports determine palette. I took sections of the sky using nestopia's color palettes and they don't seem to match this PCE version at all.

>> No.1226067
File: 12 KB, 960x720, RetroArch-1126-164651.png [View same] [iqdb] [saucenao] [google]
1226067

>>1226047

Ducktales 2 similarly has physics problems.

>> No.1226192

>>1225973
No see I'm saying for him to be doing so many at once it's probably an NES emulator written for PCE with some additional bells and whistles that lets sprites be replaced like in a romhack, but improved specifically with the PCE in mind. If that's what it is it's pretty damn cool but I'm sure he has to manually tweak and optimize it for individual games. It would be neat if it came out as a devkit.

>> No.1226196

>>1226192
>an NES emulator written for PCE

The PCE is nowhere near fast enough to handle an NES emulator. It has to be handling the code natively, and it can do it because they use similar CPUS and to "port" a game you just have to change some things.

>> No.1226201

>>1226192

According to the thread he's using code from some of the games in other ones. For instance Castlevania code in Contra.

>> No.1226316

>>1226192
No, as has been stated before the hardware is similar enough that most of it runs natively. This isn't emulation.

>> No.1226825

I first I thought you meant they were being ported to the PC, which would be awesome (especially if they were open sourced).

>> No.1226834

>>1225782
aaaaaaaaarrrrgh my eyes!

>> No.1227274

>>1225772
>I had no idea this was even possible without source code.
I'm sure that at least Metroid and SMB1 have been fully disassembled.

>> No.1227316

>>1225772
I think he should spend his time porting over other games that never got to see a home console like put Black tiger on a console for fuck sakes.

>> No.1227349

Since we're talking about porting NES games to PC and allowing for enhancements, someone actually did straight up recode Zelda 1 and allow the engine to be mods able; you can add shitloads of new weapons, enemies, etc. and even use way expanded colour palettes

>> No.1227643
File: 165 KB, 800x600, PCengine[1].jpg [View same] [iqdb] [saucenao] [google]
1227643

>>1227349
>Since we're talking about porting NES games to PC

PC-Engine, an entirely different console.

>>1227316

The NES and PCE share a very similar CPU, meaning that very large chunks of the code can be retained meaning the porting process is rather easy. A professional team with documentation could have these ports done in days.

Porting some arcade game is MUCH harder.

>> No.1227678

>>1227316
>put Black tiger on a console for fuck sakes.

But it already is on console... It took a while to happen, but it's there. On Capcom Classics Collection vol. 2.

>> No.1227708

>>1225793
Assembly source code is always available. It's just that it's 2hrd for most people.

>> No.1227797

>>1227708
No. Machine code, or more appropriately, "binary blob" is always available.

>> No.1227902

Here are a few videos of the games I recorded back in May. Using the Turbo Everdrive on a US TurboGrafX 16. Very playable, with Mega Man seeming to be the most accurate.

http://www.youtube.com/watch?v=1tewBtAEhdo
http://www.youtube.com/watch?v=952SCZF-4ik
http://www.youtube.com/watch?v=PZbJqA2Ll9Q
http://www.youtube.com/watch?v=Z8uOkbbRmkg
http://www.youtube.com/watch?v=O_H6HnJWDwM
http://www.youtube.com/watch?v=RRhaNDNp_m4

>> No.1227927

>>1227349
I'm not sure how to feel about Zelda Classic. On one hand, it's very awesome to be able to play and mod the original. However, when I played it years ago, the entire game felt off. I've got muscle memory of the first dungeon, but the game threw me for a loop by having different AI and slightly different physics. As I understand it, the original programmers never looked under the hood of the game and just ported it going off by what you can see while you play.

It's also a damn shame the authors are a bunch of elitist dickwads that refuse to open source the project, so good luck trying to mod the mechanics or port it to something other than windows.

>> No.1227943

>>1227902
>with Mega Man seeming to be the most accurate.

It's because it has had the most effort put into it.

>> No.1227956

>>1227943
Well, yeah, having the version number most closely approaching 1.0, and all.

Also PCEdev was talking about making a Mega Man styled platform game but Rea Life Consequences put the damper on that project. If he'd use crowdfunding, I'm sure it would help...

>> No.1228127

>>1227902
Hey, that lack of sprite flicker is actually really noticeable. That's pretty neat.

>> No.1228131

>>1228127

I still had sprite flicker in MM2. See:
>>1225786

I'm really curious how MM3 would handle. The NES version had tons of slowdown.

>> No.1228173

>>1225772
My question is: Why the PCE? Why not, for example, the Mega Drive? Is it easier to port from NES to PCE or something?

>> No.1228175

>>1228173
>Is it easier to port from NES to PCE or something?
Yes. Read the thread.

>> No.1228179

>>1228173

see:
>>1225874

>> No.1228194

>>1228173
>Mega Drive

Look at this.


http://www.youtube.com/watch?v=Z8qmfKh7w9w

>> No.1228203

>>1228194
Fuck, the music sounds horrible.
And yeah, it's not like it's impossible, but porting to the Mega Drive would likely be much more difficult because it's 68K based, not 6502, bringing in opcode discrepancies and such, aside from the processor likely handling the code slightly differently. It would be a lot more work.

>> No.1228216

>>1228203
They could've ran the audio to be output by the Z80, but there's a problem with that. The NES has support for 2 square waves, one triangle, one noise, and one sample channel. The SMS on the other has support for three square waves and noise, with the sample being largely unusable for musical purposes; however, it's no problem for Genesis music, since the Genesis is powerful enough to handle the "CPU drain" the SMS would've otherwise suffered.

>> No.1228227

>>1225772
There was already a NES emulator which allowed for enhancements via exchangeable high resolution sprites etc..
http://www.youtube.com/watch?v=N57ApspYHVE&gl=CA

All you really need to do is have it do scale and replace for tilesets on the output video. HDNES requires you to load a game first so it can essentially rip the tileset. If you can rip the the audio banks in the same way you should be able to reproduce do audio swapping in a similar way.

>> No.1228230

>>1228203
The music sounds all muffled, bowser's castle sounds like a lot of loud noise. The sound effects sound about the same though aside from the mushroom/flower transform.

>> No.1228265

>>1228227

>can't play on original hardware

trash

>that art

That's the ugliest thing I've ever seen. Can tell you're a programmer.

>> No.1230492

>>1228227

meh

>> No.1230857

>>1228227
And this has what to do with running NES games on a PCE?
PCE, not PC. PC-Engine/TurboGrafx please read the post you're replying to more closely next time