Page 10 of 10
Re: comprehensive SMB1 disassembly
Posted: Sun Jan 27, 2013 11:39 pm
by Hamtaro126
One thing that might be interesting to do is to still try to make SMB use 1-screen mirror for scrolling left-right for future expansion, Even though the code cannot let me do that due to it being a bit of terrible code!
This way, You can usually port to systems that have scrolling but only have capability of 1-screen mirroring only... like Commodore 64, *Sega Master System, *Game Boy, etc
* I can try to convert code after I figure out how to display only one screen, of which needs a new renderer
Re: comprehensive SMB1 disassembly
Posted: Mon Jan 28, 2013 4:42 pm
by Sik
tepples wrote:Sik wrote:The other issue is control lag, which again I don't get (implementing lagless controls is easier and simpler, seriously o_O just react as soon as the input comes).
Perhaps it's that the operating system itself isn't designed around low latency. Some touch screens, for example, sample multiple times to ensure more accurate position readings. Keyboard input is often heavily processed based on an assumption, valid most of the time, that the keyboard is used for inputting text in any of several languages, some of them with fairly complex writing systems. And some adapters from classic SPI controllers to USB add latency as well. Furthermore, video and audio latency contribute to the perception of lag; an operating system's media subsystem may be geared toward the CPU-efficient and/or battery-efficient playback of noninteractive music and video more than toward gaming.
The biggest offenders tend to be unlicensed games on consoles though =P
Re: comprehensive SMB1 disassembly
Posted: Mon Jan 28, 2013 11:03 pm
by mikejmoffitt
Hamtaro126 wrote:One thing that might be interesting to do is to still try to make SMB use 1-screen mirror for scrolling left-right for future expansion, Even though the code cannot let me do that due to it being a bit of terrible code!
This way, You can usually port to systems that have scrolling but only have capability of 1-screen mirroring only... like Commodore 64, *Sega Master System, *Game Boy, etc
* I can try to convert code after I figure out how to display only one screen, of which needs a new renderer
A proper, non giana-sisters port of SMB to the Commodore 64 would be awesome.
Re: comprehensive SMB1 disassembly
Posted: Sun May 19, 2013 1:48 pm
by autoreverse
Hey doppelganger,
Not sure if this has been mentioned already. Line 15317:
...could be changed to:
Code: Select all
stx Square1SoundBuffer ;and stop making the sfx
Re: comprehensive SMB1 disassembly
Posted: Wed May 22, 2013 12:16 am
by oRBIT2002
Would be interesting to read some "behind the scenes" information on how this was done?
Re: comprehensive SMB1 disassembly
Posted: Tue May 28, 2013 8:10 pm
by doppelganger
Picture a man in his 30's at his computer, pouring through a disassembly of the program ROM, typing by hand everything in notepad.exe, stepping through the program in certain areas where it was more confusing, and comparing notes with the Super Mario Bros hacking project disassembly that was made further back in order to verify certain known things like the foreground object data format, and you have a pretty accurate picture of the behind-the-scenes stuff. There's not really much more to tell, unless you count a rough sequence of what got reverse-engineered...
Re: comprehensive SMB1 disassembly
Posted: Wed May 29, 2013 6:54 pm
by BMF54123
I'm really interested in the bits of unused code sprinkled about. Why does the game have a brick counter? Why are broken brick pieces changed into white balls when you touch the flagpole? The world may never know... :\
(though my theory for the latter is that fireworks were originally going to use the brick-breaking routine, just with the brick graphics changed to something more firework-like)
Re: comprehensive SMB1 disassembly
Posted: Thu May 30, 2013 10:19 am
by strat
I'll take a wild guess that you first looked at the vram writes and went backwards to find the area parser stuff.