Join us on Discord!
You can help CodeWalrus stay online by donating here.

Graphics-hacking Super Mario Bros.

Started by JWinslow23, July 03, 2017, 04:32:57 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


I had an idea to hack the graphics of Super Mario Bros to change the art style. So far, I'm almost done hacking the graphics for the sprites (and now, I even have some leftover tiles, in case I wanna add something somewhere).

These pictures will show my progress, with (almost!) every graphic I've changed.

I can't really figure out the title screen format (and it doesn't help that it's stored in CHR-ROM without much breathing room for adding things), so I did this basic edit.

Mario flashes his classic peace sign. Let's-a-go!

Here is where you can see the first substantial changes to the enemies and powerups.

I took the liberty of disabling the powerup-flashing code of the Fire Flower and Starman. That orange deserves to be displayed in its full glory!

No longer do you have the ambiguity of "is that a skull or a peace sign?"

Fire Mario throws fireballs like an expert.

I think the Koopa Troopas look very Koopa-y today.

It always bothered me that the Piranha Plant's mouth wasn't really connected to its "body". Something had to change about it, fast.

What's a Koopa Troopa without a Red Koopa Troopa?

dun dun DUUUUUUN

Toad is as annoying as ever, but at least he doesn't look like he's giving the middle finger anymore!

Under the sea...under the sea...darling, it's better down where it's wetter, take it from me...

The cloud is NOT impressed.

I don't know what will kill you faster: a bullet to the head, or a hammer to the head.

Buzzy Beetle is buzzy.

In addition to changing the graphics, here is a list of the changes I have made to the code.

  • Implemented my "powerup-fix" (Mario form is based on collected powerup, not previous form)
  • Made damage system more forgiving (only lose one powerup per hit, instead of always reverting to Small Mario)
  • Disabled powerup flashing
  • Altered player sprite that shows before levels
  • Fixed lives display (two-digit numbers of lives display correctly), and capped lives at 99

Just for future reference for me, I'll put some addresses here that I have NOPed and made safe for any code/routines I might wanna code.

AddressCode before thisCode after this
$0A71 - $0A7ARemove axeDestroy/write block metatile
$12BA - $12BFSwitch playersArea parser task handler
$63A2 - $63ABBlockBufferChk_Enemy (?)BlockBufferChk_FBall (?)
$673B - $674DCUSTOM: Draw "peace sign" Mario before levelDATA: Enemy graphics table
$6F38 - $6F43Kick player's feet while swimmingChoose graphics for player's action
$70F9 - $710BShrink playerFlip player tiles if dying

The .ips patch is attached. This is a work in progress, so tell me what you think!


This is really awesome! The graphics look really great, and you even took the liberty to make a few gameplay improvements. I like how you decided to add your name to the title screen, but legally, I don't believe you own a copyright on Super Mario Bros. :P
  • Calculators owned: TI-84+CSE, TI-nspire Clickpad, TI-84+SE


Quote from: 123outerme on July 03, 2017, 04:54:05 AM
This is really awesome! The graphics look really great, and you even took the liberty to make a few gameplay improvements. I like how you decided to add your name to the title screen, but legally, I don't believe you own a copyright on Super Mario Bros. :P
Well, this one tool I have that's supposed to edit the title screen isn't working for me, so that's the best I could do. I wanted to make it say "Super Old Mario Bros", or at least add "GFX by Josiah" on it, but apparently there's not enough space for both.


Hey, it doesn't look too bad !
II gave it a try in Mednafen and it works just fine.
I like the new fireballs and the fact the enemies changes colors in level 2.
One gameplay improvement you could do : When fireball mario gets hit, make it so he becomes giant mario rather than small c mario.

Also, another issue : it does not fit in 32ko :'(
  • Calculators owned: None (used to own an Nspire and TI-89)


I posted a new patch. It adds an image of Mario flashing his trademark peace sign before the level:

This was not as easy as changing a few bytes: because the space for defining player poses is full, I had to write my own routine specifically for drawing the peace sign pose. I hope it was worth finding 24 unused bytes I could define this new code with!

It also adds your requested damage fix. For reference, TITLPZ+VGLIVO are the Game Genie codes I'm using to fix the damage mechanism. This can also be used in stock SMB1, so try it yourself!


Dream of Omnimaga

Those graphical changes and other edits look great Jwin! :)
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U
Now active at (CodeWalrus server)



I made another long-awaited change (at least, I've been wanting it for a long time).

Whenever I performed the infinite-lives glitch in World 3-1, it was always weird to me how the lives would glitch out with a crown and a random character. Upon looking at the code, it seems at least the crown was intended if you got over 9 lives (but I guess it fails upon having over 19 lives). So I simply took the lives-displaying code and made it display two-digit lives properly. As well, I capped the amount of lives at 99.

Download the new patch in the first post!



Since I've last updated here, I have made many more graphics changes (not all of them that I was wanting to, though). However, the biggest new thing I've added is this:

Now, both before each level AND when going in pipes, Mario flashes his trademark peace sign! You have no idea how much ASM hacking I had to do to get it to this state :P

Download link in the first post!

Lionel Debroux

Amusing :)

Do you plan on making a special version of Oiram CE, which could feature a subset of your sprite mods, the peace sign or things like that ?
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.


Well it's doable already, no need to ask Mateo, anyone can :D
  • Calculators owned: TI-Nspire CX CAS, TI-Nspire CX, TI-Nspire CAS (x3), TI-Nspire (x2), TI-Nspire CM-C CAS, TI-Nspire CAS+, TI-80, TI-82, TI-82 Plus, TI-83 Plus, TI-83 USB, TI-84+, TI-84+ Pocket SE, TI-84+ C Silver Edition, TI-84 Plus CE, TI-89 Titanium, TI-86, TI-Voyage 200, TI-Collège Plus, TI-Collège Plus Solaire, 3 HP, some Casios
Co-founder & co-administrator of TI-Planet and Inspired-Lua

Powered by EzPortal