don't click here

Super Mario Bros.

Discussion in 'Technical Discussion' started by LocalH, Jul 2, 2010.

  1. LocalH

    LocalH

    roxoring your soxors Tech Member
    Some of you may remember that I expressed interest in wanting to do something like this in the past, but was unable to due to lack of time. Well, someone's done it. It doesn't work on hardware ATM (Tiido did test it), but other than that it's fucking brilliant (world 36 seems to crash the game, as seen in the YouTube video).

     
  2. Lodmot

    Lodmot

    Member
    53
    3
    8
    USA
    Xtremely Sonic Engine
    That's amazing man. :D
    Lol, "World -1".
     
  3. ICEknight

    ICEknight

    Researcher Researcher
    Awesome.

    So it would be possible to directly port all the mapper-less NES games to the MD?
     
  4. amphobius

    amphobius

    doing more important things with my life Member
    2,120
    0
    16
    life
  5. nineko

    nineko

    I am the Holy Cat Tech Member
    6,298
    475
    63
    italy
    It's not surprising that world -1 crashes the game, after all, in the original game, all it did was to read garbage data from the ROM. I am willing to bet that all the regular levels work.
     
  6. LocalH

    LocalH

    roxoring your soxors Tech Member
  7. ICEknight

    ICEknight

    Researcher Researcher
    That was such an odd choice for controls, by the way.
     
  8. LocalH

    LocalH

    roxoring your soxors Tech Member
    I know. Intuitive in regards to button labeling, non-intuitive in terms of actual play. I was able to adjust fairly easily, however.
     
  9. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,192
    404
    63
    Japan
    Oh hell yes, very impressive, now all we need is a (good) SNES version of Sonic The Hedgehog and we're set =P

    How the hell long did this take to make man?!?
     
  10. NeKit

    NeKit

    Member
    57
    0
    0
    Russia
    Sonic SCANF
    Wait, didn't Super 1998 Mario 2 and Sonic Jam 6 already do it, except Sonic instead of Mario sprite?
    Though sorry, didn't notice about translator.
     
  11. LocalH

    LocalH

    roxoring your soxors Tech Member
    Yeah, except those "ports" suck BIG PENIS. Play control is shitty, collision detection is horrible, and not all secrets are present. This is a true port, made from a disassembly of the original NES code. So far, the only thing I've seen that doesn't work properly is world 36 (I.e., the minus world), and that makes complete sense, since it was a bug in the original that relied on reading out-of-bounds data (the FDS version of SMB1 also behaves differently, giving you -1, -2, and -3, which when beaten acts like 8-4 was beaten and returns to the title screen with the world select active). For world 36 to work on the Genesis port, it would have to be special-cased.
     
  12. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,718
    1
    0
    being an asshole =P
    Yeah, but it isn't the first person who thought that NES A and B should map to Mega Drive A and B, I know somebody else who did that very same thing =| Honestly, I'd make the title screen use the D-pad instead of C (so he can get rid of Select) and map A and C to the same button.
     
  13. LocalH

    LocalH

    roxoring your soxors Tech Member
    Noticed a few more small issues - as everyone has probably already noticed, the palette is way off, black is too gray and reds are a little purplish. Also, due to the way it seems he's assigning each 8x8 NES sprite to a single Genesis sprite, you run into the sprite limit quite a bit (see 6-4 near the powerup block, and also the later X-4 levels where Bowser throws hammers - if you shoot fireballs at him with lots of hammers on-screen, the fireballs are invisible, but still there - they do damage as expected).
     
  14. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,718
    1
    0
    being an asshole =P
    Except that the sprite limits for the NES are 8 sprites per line, 64 overall, if I recall correctly... so any sprite limit issue on the MD port should also appear on the NES. I think the issue is somewhere else.
     
  15. LocalH

    LocalH

    roxoring your soxors Tech Member
    NES has no overall sprite limit for the entire screen that I know of, MD does. That's where the issue comes into play, I believe. Let me do a bit of research and I'll get back to you on this.

    Edit: Hm. I was wrong. NES OAM can hold data for up to 64 sprites. H32 mode can support 64 sprites. Have no idea if SMB reloads the OAM data midframe, most likely not (AFAIK, the only code that runs at a specific mid-frame point is the sprite 0 hit below the status bar). AFAIK, he's more or less emulating the PPU behavior, so I can't imagine that the status bar is taking up any sprites (except for the aforementioned sprite 0 hit).
     
  16. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,218
    965
    93
    Long-term happiness
    The Mega Drive can do Mario music much better than that, as some of the SMPS guys here have shown.


    Other than that, very impressive! Certainly the best copy of Mario I've seen on the Mega Drive.
     
  17. stormislandgal

    stormislandgal

    It's not a phase! Tech Member
    4,534
    10
    18
    Married life <3
    While it may not be pretty, it's probably the NES's soundwave format being fed directly through the Genesis' sound system. If I read the topic correctly, this is pretty much just an NES rom packaged in with an on-the-fly converter. I could be wrong though and probably am since I didn't pay special attention to the technical details.
     
  18. LocalH

    LocalH

    roxoring your soxors Tech Member
    Well, you're not 100% exactly right, but you're really close. The code is translated to 68k (mostly automatic, but a few small things had to be done manually), he does emulate the NES PPU and I/O, but he only simulates the APU interface, as sort of a "bridge" to his custom music engine (which uses data converted from the original NES data). Otherwise, the game data is stored exactly as found in the NES ROM. I'm sure his sound engine could be replaced with another one, or better instruments could be used with the existing data (it seems that rather than exactly simulating the 5 channels of the NES, he put the music on the 2612 and the sound effects on the PSG, because it doesn't seem like music notes drop out when sound effects hit, as would happen on the NES).
     
  19. LordOfSquad

    LordOfSquad

    bobs over baghdad Member
    5,186
    232
    43
    Winnipeg, MB
    making cool music no one gives a shit about
    So, if this is just ran through a converter, would it be possible to port other NES games too?
     
  20. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,718
    1
    0
    being an asshole =P
    He was unable to emulate the sound hardware properly which is why he recreated the sound effects. Also, if I recall correctly, he ran the 6502 disassembly through a 6502-to-68k converter, so it isn't done on-the-fly.