| Author | Topic: New Genesis Game:SMB4MD (Read 30,683 times) |
Mairtrus >> 9 MILLIMETER <<
     member is offline
![[avatar] [avatar]](http://i114.photobucket.com/albums/n273/patriaka/Untitled.gif)
Get a load of this!!
![[msn] [msn]](http://images.proboards.com/msn.gif)
Joined: Nov 2007 Gender: Male  Posts: 193 Location: Mendoza, Argentina
|  | New Genesis Game:SMB4MD « Thread Started on Jun 30, 2010, 9:31am » | |
After read the title, maybe some ones thought "WTF means a so strange title?", but I'm sure all the games lovers recognized inmediatly the first 3 letters as from Super Mario Bros, the classic of the classics. Well, that is exactly what is this, a complete port of the Super Mario Bros game from NES to our lovely Genesis. Of course, some people can say: "oh, sure, this is awsome , well done on copying a game that is ported to at least ALL the consoles in existence", but the amazing of this port in particular is the fact that I used an automatic conversor to "translate" from the 6502 asm (NES processor) into the M68K asm. In fact, despite the HUGE optimisation I did only to fit the game in less that 64kb (I was thinking to create a LAKABAJO version... maybe in the future, when I build mine ), at least the 75% of the code is still untouched after the translation. Of course, I nedeed to create from scrath the I/O function, which emulates "on the fly" the NES I/O function, since ALL THE ORIGINAL DATA IS STILL HERE. Also, if you check the memory usage, only $800 bytes are used (000-7FF, like in the original NES!!).
2 or 3 things: - Before load it, disable the "AutoFix Checksum" in your emulator. - The C button is for select between 1 or 2 player in the main menu. However, don't play in 2 players mode in Fusion. For Whatever reason, it takes the A and B buttons, on the second joypad, as the same button (strange, isn't it?) - 2 small cheats: push A+Start on the 1st joypad (this set the flag who allows you to choose the start level at the beginning), or/and push Down+B on the 2nd joypad (this set the game in 40H mode, like during the development!!), then reset the game.
But stop reading, download, and enjoy it.
Of course, I could not do it without some help. Credits to: doppelganger: If this guy had never disassembled the original game and complete comented it, I never had the stupid idea of port it. Maximun credits are for him. walker7: The whole game would not possible without his help. He helped me to correctly translate some 6502 instruction I never understood. Thank you a LOT. Tiido Primagi: Some help, betatesting, and try it on real HW (didn't work, but thanks anyway ) Devster: For help me A LOT of time ago (like 1 and a half year ago, the first time this project started), and for BasiEgaXors, the main reason I started with the genesis programming, and because I used it to simulate an enviroment to recreate all the NES sounds, since is nearly to the impossible emulate them on the fly. Pascal: Without his "MD developper studio", I would never discovered what exactly hanged the code in early development stages. My friends crash_19, areBalo, il panino, fraskito & lucho: for betatesting it, and for support me through this entire project. HardWareMan, Stef, mic_, Gigasoft, Charles MacDonald & Chilly Willy: For some tips when I was trying to fit the code in 64KB without loosing execution speed. Tom Maneiro, ScroGer, jlf65, TheMVRules, Shiru, theelf, abokys, JDTAY, socram8888, Syniphas, and a lot of other people I'm forgetting: For keeping the community alive and for be so awesome persons.
Feedback, bugs, critizes, everything will be good received.
EDIT at 11/07/2010 01:06 Version 1.4.1 released!! Click HERE for download it. Changes since the last version: - The pallete was replaced by a one more accurated. INFINITE thanks to localh for that. - Some minor bugs around the whole code where fixed. Credits to Chilly Willy for some of them. - The PPU emulation code was rearranged, so now (plus some minor things in some parts of the code) it SHOULD works on real hardware whitout graphical glitched and other shit. HUGE thanks to tascoDLX for ALL that. - A small error in the musics was fixed (the D4 and D#4 notes was using the D4 frequency). Thanks to Bibin who reminds me to fix this. - According to Sik (he said it first...), now in main screen the number of players is selected with the Up/Down buttons. Now the A and C buttons does the same function. Plus, the joypads are initilized properly, so now the joypad 2 works in Fusion (an I guess in real hardware too) - The checksum routine now is gone (as you hear, space pirates), since it took less time hack it than it tooks to me create it. - The new cheats are(always before the tittle screen): press "A" for enable the world selection cheat; press "Up" for set the screen in Interlace mode (as localh requested).
EDIT at 11/07/2010 19:28 Last minute modification. Just a few fixes that should have been present in the last release. Click here Enjoy it!!
|
¿Tenés problemas con BasiEgaXorz? |
|
Tom Maneiro $$$ Donald Trump Status $$$
      member is offline
![[avatar] [avatar]](http://mi.tsdx.net.ve/images/son3_tailsfly.gif)
NERGAL slave developer
![[msn] [msn]](http://images.proboards.com/msn.gif)
![[homepage] [homepage]](http://images.proboards.com/buttons/www_sm.gif) Joined: Feb 2004 Gender: Male  Posts: 1,137 Location: El Tigre, Venezuela
| |
sasuke PooP MonkeeH
 member is offline
![[avatar] [avatar]](http://www.pouet.net/avatars/myau.gif)
Ninja Cat
Joined: Mar 2008 Gender: Male  Posts: 8 Location: Nowhere, USA
|  | Re: New Genesis Game:SMB4MD « Reply #2 on Jun 30, 2010, 1:50pm » | |
Excellent job! You even gave it sound.
I think the only noticeable bug I found was that Mario can't slide, which I assume has to do with the way the joystick code handles diagonals. Other than that, it plays well.
As for the 6502 asm "translator", does it translate the source code or the binary? Either way, it seems like a cool idea.
Edit: @Tom Maniero: The A+Start cheat isn't level select, it continues at the beginning of the world you were in at the last Game Over. The original NES version had this cheat.
| |
|
TheMVRules $$$ Donald Trump Status $$$
      member is offline
![[avatar] [avatar]](http://er3vlw.bay.livefilestore.com/y1py746U2mZyVqR8UD3dAmiq8uowmtmgY2GORonE0ndMRCNEYCZIDUtrHhVwuYMfgl6Rex6slL8SMEC-nQaF662KL5RskdbhWcH/pow.png)
Master of the holy worlds
![[homepage] [homepage]](http://images.proboards.com/buttons/www_sm.gif) Joined: Oct 2009 Gender: Male  Posts: 335 Location: Linköping, Sweden
|  | Re: New Genesis Game:SMB4MD « Reply #3 on Jun 30, 2010, 1:56pm » | |
That was cool!
Please give us the convertor! We need Metroid!
However, the YM2612 is better at making square waves.
I attached a square wave for TFM Music Maker, but sounds more like a TI PSG than the 2A03 squarewave generators. Change MULT of operator 1 to simulate pulse width.
A triangle can be made perfect with YM2612.
But, I repeat, that was very cool.
sasuke: Since there exist disassemblies of this game, I'll bet on source code.
Please login to download attachments. |
|
|
Tom Maneiro $$$ Donald Trump Status $$$
      member is offline
![[avatar] [avatar]](http://mi.tsdx.net.ve/images/son3_tailsfly.gif)
NERGAL slave developer
![[msn] [msn]](http://images.proboards.com/msn.gif)
![[homepage] [homepage]](http://images.proboards.com/buttons/www_sm.gif) Joined: Feb 2004 Gender: Male  Posts: 1,137 Location: El Tigre, Venezuela
|  | Re: New Genesis Game:SMB4MD « Reply #4 on Jun 30, 2010, 2:13pm » | |
Now it would be nice to have a converter to rip all those hacked levels/tiles from those Mario hacks (should be easy, as 99% of the hacks out there modify data at fixed locations), and generate Genesis ROMs 
Now, please give the codez and documents so we can do some neat hacks...
|
Tom Maneiro- tomman@cantv.net - - http://mi.tsdx.net.ve/ - -- Console modding: because the soldering iron must justify its existence! |
|
jlf65 $$$ Donald Trump Status $$$
      member is offline
Joined: Dec 2005 Gender: Male  Posts: 415
|  | Re: New Genesis Game:SMB4MD « Reply #5 on Jun 30, 2010, 3:26pm » | |
Wow! Great job on that. Like the others, I'm also interested in the converter... lots of 6502 games out there that could be converted. 
| |
|
oompa loompa I AM THE GOVERNATOR
 member is offline
![[avatar] [avatar]](http://devster.monkeeh.com/pics/moonwalker.gif)
"Git 'Er Dun!"
![[homepage] [homepage]](http://images.proboards.com/buttons/www_sm.gif) Joined: Sept 2003 Gender: Male  Posts: 1,289 Location: Up
|  | Re: New Genesis Game:SMB4MD « Reply #6 on Jun 30, 2010, 5:32pm » | |
Wow, I just saw this now and had to post right away 
I haven't tested it, but from the looks of everyone else's experiences, good job . A converter isn't a small accomplishment, it's a HUGE accomplishment. The epic-ness of this project matches up with the 32x stuff we were working on before 
| |
|
tomaitheous PooP MonkeeH
 member is offline
Joined: Jul 2010 Posts: 2
|  | Re: New Genesis Game:SMB4MD « Reply #7 on Jun 30, 2010, 9:11pm » | |
Good job Mairtrus, handling the PPU and APU stuff on the fly
| |
|
jeff20 PooP MonkeeH
 member is offline
Joined: Jul 2010 Posts: 2
|  | Re: New Genesis Game:SMB4MD « Reply #8 on Jul 1, 2010, 2:08am » | |
fuggin awesome. This is huge. I joined the site because this is HUGE!
Do you think you can make more? After seeing Paul Lee's Berzerk for the Genesis, I've been dying to see Donkey Kong or Popeye. Both have good NES cart versions. Maybe even Mappy or Zelda!
| |
|
theelf >> 9 MILLIMETER <<
     member is offline
![[avatar] [avatar]](http://mcatpec.fotocajon.com/679/0b1/6790b13371eaf51bfa91a01ea4da5f41.jpg)
Joined: Apr 2007 Gender: Male  Posts: 191 Location: España
|  | Re: New Genesis Game:SMB4MD « Reply #9 on Jul 1, 2010, 5:14am » | |
Hey mairtrus!! GREAT!! incredible port, this is the project you tell me months ago?i think yes... jaja, incredible
Now I understand why you was missing this time...!!!!
I think is a great idea make a web page, if you want i can make one for you, if you don´t have
Thanxs a lot for your effort and share it with us ...
Gracias che, en serio, lo malo, que esto me obliga a mejorar todos mis proyectos!! jajajajaj despues de esto, es patetico lo que programo...jejeje
PD: I i found a small bug in the second level....
|
|
|
theelf >> 9 MILLIMETER <<
     member is offline
![[avatar] [avatar]](http://mcatpec.fotocajon.com/679/0b1/6790b13371eaf51bfa91a01ea4da5f41.jpg)
Joined: Apr 2007 Gender: Male  Posts: 191 Location: España
|  | Re: New Genesis Game:SMB4MD « Reply #10 on Jul 1, 2010, 9:36am » | |
mm.. sorry if my idea is absurd, but there is a way to compile for MegaCD?
jeje, i like to burn, and play in the megacd... like a original game!
|
|
|
jeff20 PooP MonkeeH
 member is offline
Joined: Jul 2010 Posts: 2
|  | Re: New Genesis Game:SMB4MD « Reply #11 on Jul 1, 2010, 10:36am » | |
Can someone explain why this will not work on a real Genesis?
| |
|
Mairtrus >> 9 MILLIMETER <<
     member is offline
![[avatar] [avatar]](http://i114.photobucket.com/albums/n273/patriaka/Untitled.gif)
Get a load of this!!
![[msn] [msn]](http://images.proboards.com/msn.gif)
Joined: Nov 2007 Gender: Male  Posts: 193 Location: Mendoza, Argentina
|  | Re: New Genesis Game:SMB4MD « Reply #12 on Jul 1, 2010, 8:08pm » | |
Wow, I never expected so much feedback for this!! In the the Sega-16 forums, the thread reach the 5 pages... Thank you for all your comments, guy. I'm really proud of my "product" and, hopefully, in a near future I will add some features like:
- Rewrite all the VDP access sections (write tiles, the sprites list, etc) to make it more "Genesised". The necesity of emulate the PPU access are a royal pain in the ass! - Rewrite the maths section. Since this is based in a 8-bit cpu, exists a super intensive abuse of the Carry/eXtended flags, and that really bothers me... - Implement a fully usage of the 5FM+DAC+2PSG+NOISE to make the music sounds better. - Change the graphics (the actuals are the originals 2BPP graphics). - Fix the pallette. The current seems to be inaccurate for the fanboys. - Implement a 2 players co-op mode. - And more!
And now, answering to yuor questions:
Jun 30, 2010, 1:31pm, Tom Maneiro wrote:The levels look and feel exactly like the real thing, and the sound is... weird But i love it - the "underground" level music now has some metal tone that i like it |
|
That's because, as I say before, all the original data was used for the game: the tiles arrangement, the sprites positions, gravity forces, etc. Strange you said the underground music, because I tryied to give that sound to the Castle music.
Jun 30, 2010, 1:31pm, Tom Maneiro wrote:The original ROM was only 40KB, so certainly this sounds like a nice proggy for LAKABAJO owners Hope that you can do it (and hope that i can buy that pesky GameGenie somewhere in the future, if i don't get that Everdrive cart first ) |
|
Yeah, my dream is play it on my real genesis, but still cannot find the flip-flop I'm missing...
Jun 30, 2010, 1:31pm, Tom Maneiro wrote:| How the hell i should use the Level Select cheat? I press A+START, then soft-reset, but nothing.... |
|
Actually, you need to keep them pressed until the main screen apears, since the cheat is tested on the begginning, but is ocurrs so fast that is impossible to reset the game THEN press the buttons...
Jun 30, 2010, 1:50pm, sasuke wrote:| I think the only noticeable bug I found was that Mario can't slide, which I assume has to do with the way the joystick code handles diagonals. Other than that, it plays well. |
|
Slide? What are you talking about?
Jun 30, 2010, 1:56pm, TheMVRules wrote:| Please give us the convertor! We need Metroid! |
|
Haha, at the middle of the project, I start thinking on Metroid as a good game to be converted. Maybe someone will make it reallity some day...
Jun 30, 2010, 1:56pm, TheMVRules wrote:However, the YM2612 is better at making square waves.
I attached a square wave for TFM Music Maker, but sounds more like a TI PSG than the 2A03 squarewave generators. Change MULT of operator 1 to simulate pulse width.
A triangle can be made perfect with YM2612. |
|
The sound was the last thing I programmed, and initially I attempted to do all in the PSG, but the 2A03 is by far more complex than the SN76489, so I keeped it for the sfx and started to create the music in the YM2612, but as I could not create "perfect" square or triangle waves, I put some instruments stoled from the amazing instruments gallery from TFM.
Jun 30, 2010, 1:50pm, sasuke wrote:| As for the 6502 asm "translator", does it translate the source code or the binary? Either way, it seems like a cool idea. |
|
Jun 30, 2010, 1:56pm, TheMVRules wrote:| sasuke: Since there exist disassemblies of this game, I'll bet on source code. |
|
This.
Jun 30, 2010, 3:26pm, jlf65 wrote:Wow! Great job on that. Like the others, I'm also interested in the converter... lots of 6502 games out there that could be converted. 
|
|
I need to touch it a bit, since I made it for this specific disassembly, it doesn't recongize (yet) not dimensioned variables (EQUs and those...), but sure I will release it. However, all you need to know that doesn't give a "ready to be compiled" source code, since the imposibility to translate "as is" 2 or 3 instructions which need to translated by the hand, but is a short job, and in less than a week, you can have a fully playable game.
Jun 30, 2010, 9:11pm, tomaitheous wrote:Good job Mairtrus, handling the PPU and APU stuff on the fly  |
|
Onyl the PPU is emulated on the fly. For the APU, I create an enviropment in BEX (just ot made it fast) to simulate the APU conditions. The sound engine was write from scrath, but the new music data was done using the original music data.
Jul 1, 2010, 2:08am, jeff20 wrote:| Do you think you can make more? After seeing Paul Lee's Berzerk for the Genesis, I've been dying to see Donkey Kong or Popeye. Both have good NES cart versions. Maybe even Mappy or Zelda! |
|
Sure more games can be done, but I have no time to make them, that's the reason I will release the tools used for made this one (once I tweak it a bit, as I said before). About the games you mentioned, didn't Zelda or Mappy use a mapper or something? Because that's something I never readed how are managed in the NES.
Jul 1, 2010, 5:14am, theelf wrote:Hey mairtrus!! GREAT!! incredible port, this is the project you tell me months ago?i think yes... jaja, incredible
Now I understand why you was missing this time...!!!! |
|
Yeah, that was... Actually, I spend more time fixing the idiots error I mistake during my attempt to fit all in 64KB or less (3 months for this one, and only 1 week translating the "untranslatable" instructions)
Jul 1, 2010, 5:14am, theelf wrote:| I think is a great idea make a web page, if you want i can make one for you, if you don´t have |
|
One of the projects in what I will spend my time in this winter holydays(summer for you, north hemisphere people), is a creation of a web page. I hope Devster's offer be still available when I finish...
Jul 1, 2010, 5:14am, theelf wrote:| Gracias che, en serio, lo malo, que esto me obliga a mejorar todos mis proyectos!! jajajajaj despues de esto, es patetico lo que programo...jejeje |
|
Seee, pero esto es ensamblador puro, ahi esta la gran diferencia, y tengo planeado algo todavia más grande 
Jul 1, 2010, 5:14am, theelf wrote:| PD: I i found a small bug in the second level.... |
|
Isn't that bug present in the original game too? I swear I see in YouTube lot of time ago a bugs compilation where this happens
Jul 1, 2010, 9:36am, theelf wrote:mm.. sorry if my idea is absurd, but there is a way to compile for MegaCD?
jeje, i like to burn, and play in the megacd... like a original game! |
|
I want to do this too, but I doesn't fully understand the SegaCD docs who explains the structure of a SegaCD ISO. There are some compiling projects on the RetroDev, but I didn't tried them yet. Maybe tomorrow...
Jul 1, 2010, 10:36am, jeff20 wrote:| Can someone explain why this will not work on a real Genesis? |
|
I'm not 100% sure, but seems to be a problem with the VDP initialization routine (writes illegal data)
|
¿Tenés problemas con BasiEgaXorz? |
|
theelf >> 9 MILLIMETER <<
     member is offline
![[avatar] [avatar]](http://mcatpec.fotocajon.com/679/0b1/6790b13371eaf51bfa91a01ea4da5f41.jpg)
Joined: Apr 2007 Gender: Male  Posts: 191 Location: España
|  | Re: New Genesis Game:SMB4MD « Reply #13 on Jul 2, 2010, 2:16am » | |
Hey, thanxs for the reply maitrus, about the feedback, for me play mario in the megadrive is great!! i really like...
But i like to much to enjoy your work, because every people have different projects in their mind, but not everyone can make real
I learn a lot watching the work of others, so i thank you!!
About the bug, you are right, is present in the original Famicom game!! sorry, my apology.... jajja
About the slide problem, i don´t find this problem, mario slide the same in the famicom game...
Quote:I want to do this too, but I doesn't fully understand the SegaCD docs who explains the structure of a SegaCD ISO. There are some compiling projects on the RetroDev, but I didn't tried them yet. Maybe tomorrow...
|
|
thanxs, MegaCD have the plus of waste 640mb ..jajja, 64kb in a CD...
I think maybe you need to add some splash screen, like "ported by..." because are a lot of thief in the net....
|
|
|
Tom Maneiro $$$ Donald Trump Status $$$
      member is offline
![[avatar] [avatar]](http://mi.tsdx.net.ve/images/son3_tailsfly.gif)
NERGAL slave developer
![[msn] [msn]](http://images.proboards.com/msn.gif)
![[homepage] [homepage]](http://images.proboards.com/buttons/www_sm.gif) Joined: Feb 2004 Gender: Male  Posts: 1,137 Location: El Tigre, Venezuela
|  | Re: New Genesis Game:SMB4MD « Reply #14 on Jul 2, 2010, 3:06am » | |
As for the mapper thingy: Almost all NES games uses mapper chips (or weird chipsets) for bankswitching, SRAM, extra RAM, or even copy protection for bootlegs And there are more than 100 mappers (although most are simple TTL logic puzzles, or hacked Nintendo mappers), so you need to take that in account when doing your magical "conversion". Have fun, since the documentation for most of those mappers are scattered everywhere in the Internets, and some mappers are plain evil (thankfully, most of those evil mappers are multigame pirates, so you don't have to worry about these ). Anyway, every game will need some recoding work to make it work.
Only overly simple games like Mario use plain ROMs, because they fit in the extremely limited NES memory space (32KB of PRG, 8KB of CHR, or something like that) - this is "Mapper 0", AKA NROM.
And if you ever open a development website for your projects, don't forget one thing: documentacion en español 
FUN PROJECT: Why not run the game in the Z80? 
EDIT: The thread at Sega-16 is really funny. Mario the fascist? I thinked that he was socialist or something Also, Fusion VDP emulation has another litte flaw, that allows the ROM to work there, but it dies on Real Hardware(tm) and other more-accurate emulators.
|
Tom Maneiro- tomman@cantv.net - - http://mi.tsdx.net.ve/ - -- Console modding: because the soldering iron must justify its existence! |
| |
|