It is currently Sat Nov 18, 2017 3:16 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 37 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
 Post subject:
PostPosted: Thu Jul 01, 2010 8:53 pm 
Offline

Joined: Thu Aug 28, 2008 1:17 am
Posts: 591
The coder of that rom stated that he didn't emulate the APU on the fly. So he converted the source music and wrote his own engine. Makes the sound less impressive. But still cool that he did limited ppu simulation on the fly.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 02, 2010 2:51 pm 
Offline

Joined: Thu Mar 02, 2006 12:30 pm
Posts: 169
This is pretty bad ass, I had wanted to do something like this for a long time, but I was going to hand-translate the assembly and special-case the few things that would need it (world 36, for example). Few small issues I noted:

1) That palette is worse than the Nesticle palette. Reds are too purplish, and black is between dark and medium gray? Blech.

2) I'm not sure what the cause is, but there are a few points where it seemed the Genesis sprite limit kicked in, but that shouldn't happen since the NES and the Genesis in H32 mode both have the same per-screen sprite limits (64). I especially noticed it at the beginning of both 5-4 and 6-4, with the firebars (in 5-4, the long firebar appeared shorter for part of it's rotation, and the same happened on the firebar in 6-4 right below the powerup block, until I scrolled the previous firebar offscreen).

3) Cheep-cheeps in 2-3 and 7-3 seem a bit "floaty" - instead of a smooth arc, their vertical speed seems to oscillate.

4) Also in 2-3 and 7-3, I noticed the occasional bug with regards to a few metatiles having the wrong palette - it's not consistent, however, as across several playthroughs I saw it appear on different blocks, or not at all. I also think I heard mention somewhere of this happening to part or all of a cloud?

I don't consider world 36 crashing to be a bug per-se - since the behavior in the original game is based on reading out-of-band data, it's not surprising that it would have to be specifically handled on any other version (even the FDS had a different world 36 due to a differing memory layout).

Every trick I tried that I can reliably pull off worked flawlessly. I can't reliably walljump, so I was unable to test it, but I was able to jump in midair from a powerup, I was able to hatstomp enemies, and I was able to get Little Fiery Mario. Excellent port.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 02, 2010 9:08 pm 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2357
LocalH wrote:
I don't consider world 36 crashing to be a bug per-se - since the behavior in the original game is based on reading out-of-band data, it's not surprising that it would have to be specifically handled on any other version (even the FDS had a different world 36 due to a differing memory layout).


What is World 36?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 02, 2010 10:00 pm 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 3950
The "Minus" world. It's world <space>-1.

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 03, 2010 8:17 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
LocalH wrote:
... since the behavior in the original game is based on reading out-of-band data ...


What exactly were you trying to say? Please don't re-purpose terms that already have strict definitions. :-)


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 03, 2010 8:48 am 
Offline

Joined: Thu Mar 02, 2006 12:30 pm
Posts: 169
Sorry, got my terms mixed up a bit. I meant "out-of-bounds" data.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 03, 2010 11:28 am 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3482
Location: Indianapolis
Is anyone else curious to what degree their own NES code could be ported this way? I've never used the 68k, so I don't know if I could get anything working readily, but I'm still curious to see how the resulting asm looks. With label and variable names being defined, it seems like it would be readable enough.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 03, 2010 4:07 pm 
Offline

Joined: Thu Oct 05, 2006 6:29 am
Posts: 911
Well, you could write a front-end that parses the original assembly code and generates common data, and then write target-specific back-ends (e.g. MD/68k) that handles all the gritty details related to the target system.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 03, 2010 4:16 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19222
Location: NE Indiana, USA (NTSC)
But to generate efficient code, you'll have to somehow translate between 6502's tendency to do things in zero page and Z80/68K's tendency to do things in registers.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 04, 2010 1:54 am 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3482
Location: Indianapolis
tepples wrote:
But to generate efficient code, you'll have to somehow translate between 6502's tendency to do things in zero page and Z80/68K's tendency to do things in registers.


I see 6502 zeropage as being sort of a 2nd level of registers. I don't know about anyone else's programs, but I tend to re-use the same zeropage locations for almost everything by just reloading the pointer in it (it'd be pretty insane to have 128 different pointers active at once, at the most). If there were any 'extra' 68k registers left over, I guess it would help to treat specific zeropage locations as registers. Just speculation though.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 04, 2010 6:02 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19222
Location: NE Indiana, USA (NTSC)
But it'd still be a heck of a job for a program to discover which are being used as local variables, especially when the low and high bytes of a pointer might not be stored together in ROM. It'd be much the same problem for something trying to translate 6502 to Z80: which zero-page locations should be used for BC, DE, and HL at any given moment?


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 04, 2010 5:43 pm 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3482
Location: Indianapolis
Yes it would be complicated to automate, I was thinking it would be something that would be added to the source code by the programmer.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 04, 2010 9:46 pm 
Offline

Joined: Thu Mar 02, 2006 12:30 pm
Posts: 169
Tentative accurate palettes, YUV and RGB. Based on the default palettes generated by Nestopia.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jul 05, 2010 11:58 am 
Offline

Joined: Thu Aug 28, 2008 1:17 am
Posts: 591
tepples wrote:
But it'd still be a heck of a job for a program to discover which are being used as local variables, especially when the low and high bytes of a pointer might not be stored together in ROM.


I don't follow you. Why would this be difficult?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jul 05, 2010 12:05 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19222
Location: NE Indiana, USA (NTSC)
tomaitheous wrote:
tepples wrote:
But it'd still be a heck of a job for a program to discover which are being used as local variables, especially when the low and high bytes of a pointer might not be stored together in ROM.

I don't follow you. Why would this be difficult?

How would your automatic translation program know whether a particular value left in some zero page location will be needed later by some other part of the program?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 37 posts ]  Go to page Previous  1, 2, 3  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: calima, Sumez and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group