Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,795,168
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 06-17-24 07:35 PM
Guest: Register | Login

Main - Posts by JaSp

Pages: 1 2 3 4 5

JaSp
Posted on 02-13-10 02:19 PM, in SMB3 ASM... How? (rev. 2 of 02-13-10 02:26 PM) Link | Quote | ID: 127042


Shyguy
Level: 24

Posts: 61/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Modifying existing data generally is the easiest to do; for example, about the fireballs, you would need to go to a part where this effect is in the game, open the debugger and mess with it; for example, open the hex editor from FCEUXD and look at the RAM at the same time you shoot a fireball, and see if some bytes seemed to change exactly at that time.
Once you find an offset that changed, try to freeze it or set it to another value (via the Cheat window), then shoot a fireball and see if it has changed anything.
If nothing changed, then this offset is most likely not related, so try with another. Once you find one that seems to have changed something, open the debugger interface and set a write breakpoint on that offset, then shoot a fireball: the debugger should stop at the code when this offset is written to.
Examine the code, and you should see before the STA $offset (or something similar) somewhere an LDA $#value (or something similar). Right-click at the left of this line of code, and it will bring you to the hex editor, inspecting the ROM this time (instead of the RAM), where you can actually change the $#value permanently in the game.

That's roughly it, but it may be different than what I described since there are several ways to read/write values (for this I suggest you read some 6502 ASM reference documents).

Adding stuff is a little more complicated, since it requires you to add your own routine (i.e. chunk of code) somewhere in the ROM (where there is free space) and then access it via a JSR or JMP - it's a little trickier, but you'll get there eventually if you persist. (this is the method explained in DarkBoyHacker's document)

By the way, to play a custom song, you would need to write the song index to offset $4F5, for example :
LDA $#21
STA $4F5
21 being the value you see for the corresponding song in SMB3 Music Inserter.

Hope that helps, though it's a really quick overview of the process. You might find some useful docs here on romhacking.net

Oh, and as for the .asm file, it has been designed to be assembled with xkas; and once assembled, you should copy the hex code and insert it somewhere in the ROM, and then access it via a JSR/JMP (though in this case it has been made for an expanded ROM so it's a little more complicated)

JaSp
Posted on 02-18-10 12:51 AM, in Reuben: Not so final (but it's being worked on again) stage. Link | Quote | ID: 127228


Shyguy
Level: 24

Posts: 62/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Yeah, I can assure the thing is definitely real for having played with it a little.
I guess the delays come from several reasons as MapleMario said, one of which I suppose is the fact that things tend to always take a lot more time than what you imagined beforehand - I can only testify for having seen too many situations in projects where I thought the end was near when it actually was quite far away...

Not sure if that's the case here however, maybe Daiz is actually working on a twice-as-big-as-Mario-Adventure hack to show off Reuben's capabilities when it comes out

JaSp
Posted on 02-20-10 12:09 AM, in Reuben: Not so final (but it's being worked on again) stage. Link | Quote | ID: 127344


Shyguy
Level: 24

Posts: 63/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
I didn't know the NES could pull out such high quality sound!

JaSp
Posted on 02-21-10 04:52 PM, in How do I use SMB3 Music Inserter? Link | Quote | ID: 127387


Shyguy
Level: 24

Posts: 64/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Exactly; moreover making an asm patch that would be easily usable by everyone and not likely to screw things up in other hacks is harder to do than a hack for just one project.
And I will make one for Reuben once it's out, because I assume that then nobody will use the original smb3 anymore, hence making a hack for it a waste of time (and I don't have time for this now anyway).

As a side node, I should advise to you that if you want to get into ROM hacking, it will actually require you to put efforts and work in it (at least if you want to get something worth playing at the end).

JaSp
Posted on 02-21-10 11:44 PM, in How do I use SMB3 Music Inserter? Link | Quote | ID: 127410


Shyguy
Level: 24

Posts: 65/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Posted by Quick Curly
Posted by JaSp
I assume that then nobody will use the original smb3 anymore, hence making a hack for it a waste of time (and I don't have time for this now anyway).
You should never assume.
Yeah, I know; but it's kind of an excuse for my laziness, because doing things with Reuben will be much easier - and by "nobody" I think I mean "a minority", for which I could totally be wrong of course (and it's not necessarily a good reason anyway).

JaSp
Posted on 02-21-10 11:52 PM, in Super Mario 64 Level Importer Link | Quote | ID: 127411


Shyguy
Level: 24

Posts: 66/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
I tested it and it worked nicely - except for the textures but I haven't played enough with it to make it work.

I was wondering if you're planning to eventually turn it into some sort of level editor with features like adding enemies/objects via a certain type of 3D objects/points/something (I'm not sure what .obj files can handle) ?
Still, nice work so far!

JaSp
Posted on 02-28-10 03:57 PM, in Super Mario 64 Level Importer Link | Quote | ID: 127785


Shyguy
Level: 24

Posts: 67/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
C/ C++ runtime libraries seem to be installed, so here's a zip with the obj, mtl and textures (and also the max scene, I used 3DS Max 9 for the export).

I also found your hack of sm64, I missed it somehow (never really been into n64 hacking actually) but I'll surely check it out

JaSp
Posted on 03-03-10 11:59 PM, in How do I use SMB3 Music Inserter? Link | Quote | ID: 128008


Shyguy
Level: 24

Posts: 68/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Posted by Anglefage
This SMB3 patch offered will mes you up. I used the SMB3 upgrade patch and all my music is gone. And the objects don't appear in my great level. Now I'll have to start all over again.

Wait... you said you could do the ASM thing to make it work? So how about it? I also heard that that's already been done. so it should be easy.
The patch has only been tested on a clean non-hacked SMB3 ROM, however it shouldn't mess things up like this, even on a hacked ROM. Maybe you missed a step in the process, like not having extended the ROM before applying the patch or something like that ?
If not, I apologize for the inconvenience
Anyway, if you imply that you tested it on your one and only hacked ROM and hence lost everything you made on it, I would strongly advise that you always make backups of your ROMs before applying any .ips patch or modifying it with any program.

As for the ASM hacking part, you'll have to do it yourself; instructions are in the txt files (you would just need to write the song number to $4F5, however it is up to you to create a hook to play it in the levels/world maps) - you need to actually know how to code in ASM of course.
I do not plan to release any patch to work with the original SMB3 - only the Reuben one will be updated once the editor is out.

JaSp
Posted on 03-04-10 07:15 PM, in Super Mario 64 Level Importer Link | Quote | ID: 128028


Shyguy
Level: 24

Posts: 69/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Great; hopefully this will bring many quality hacks of SM64!
The tool is really cool anyway, I can't imagine how much binary operations and stuff are made behind this simple GUI

Keep up the good work!

JaSp
Posted on 03-05-10 04:18 PM, in Super Mario 64 Level Importer Link | Quote | ID: 128056


Shyguy
Level: 24

Posts: 70/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Posted by messiaen
I'm Looking forward to see some cool hacks coming, the problem however is that 3D modelling expertise is not an usual skill in people that like to modify old games (me included!).
Well 3D isn't that hard, especially when dealing with simple primitive-like shapes (since N64 can't handle very complex shapes I guess).
Dealing with 3D coordinates and operations quickly becomes logical when practicing with a 3D software.

By the way, quick technical question : do you have an estimated/exact max triangle count for any given level ?

JaSp
Posted on 03-12-10 06:59 PM, in Reuben: Not so final (but it's being worked on again) stage. Link | Quote | ID: 128328


Shyguy
Level: 24

Posts: 71/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
I'd really like to make a new smb3 hack, I'm just not sure when I'll have time to make it :/

JaSp
Posted on 04-05-10 11:35 PM, in General SMB3 Hacking Thread Link | Quote | ID: 129533


Shyguy
Level: 24

Posts: 72/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Posted by KP9000
I don't think I saw anything in there regarding title screen music... Is there a byte that controls what song is played so I can choose something other than silence?
Nope, you'll have to manually add a small ASM hack to do so.
It shouldn't be too hard though, you just need to write the song number to $4F5 via a small JSR, and I believe there's plenty of unused space in the title screen-related PRG bank.

JaSp
Posted on 04-06-10 07:49 PM, in General SMB3 Hacking Thread Link | Quote | ID: 129569


Shyguy
Level: 24

Posts: 73/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
You have to find an 'hijack point' that is executed once when the game starts. You can try to set an execute breakpoint with the debugger at the reset address (it's a fixed address stored at the end of the PRG banks iirc, search it on mmc3 related documents); or just try to see a RAM value that is changed at the beginning of the game; or, easier, use DahrkDaiz's data, specifically the "curtain drawing routine", set an execute breakpoint at the first address executed ($A990), see from where this routine is called (should be a JSR since it ends with a RTS), insert your custom code here and restore the original JSR A990, then set the RTS.
(I just did it, and you should find $A8FC as the calling address)
But you're right in the theory, just make sure to restore the instruction(s) you replace before inserting the RTS.

JaSp
Posted on 04-22-10 08:04 PM, in General SMB3 Hacking Thread Link | Quote | ID: 130360


Shyguy
Level: 24

Posts: 74/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Hey there! Just got back from Japan

Anyway, a community hack is a good idea, however, and I think we've all seen this a lot in different game-making/ROM hacking communities that group projects often don't make it to the end; it would require really motivated people, and a really good organization.
As for me, I've been eager to go back into ROM hacking these last few months, however I won't be able to get fully dedicated to it until...well I don't know; having graduated recently I need to think about making money, so I'm starting to create independent games alone, and my focus is entirely dedicated to this.

@Quick Curly: For your prg bank problem, I'm not sure to have understood everything (sorry, little tired from the time shift), but a reason for this *might* be that sometimes the banks are switched without using $71F & $720 - i.e. switching to some code in a bank and then return to the original bank before the vblank is called, since the bank switching code ($FC6F iirc) is executed every frame.

@KP: I'll send you the asm sources for the Music Inserter via PM.

JaSp
Posted on 04-27-10 06:18 PM, in General SMB3 Hacking Thread Link | Quote | ID: 130610


Shyguy
Level: 24

Posts: 75/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Maybe you have confounded ROM & RAM addresses.
In the case of DD's docs, 0x indicates a ROM address and $ indicates a RAM address.
So if you'd like to mess with, say 0x24EE, you have to 'convert' it to a probable RAM address and set the load breakpoint to one of the resulting addresses (that would be either $84DE, $A4DE, $C4DE, or $E4DE; since PRG banks are located between 8000-FFFF). And looking at Trax's code, $A4DE seems more likely (257C: B9 ECA4 LDA $A4EC,Y ; Loaded here)
Not sure that's your issue here though!

JaSp
Posted on 05-06-10 10:57 PM, in Expanding a NES ROM? Link | Quote | ID: 130961


Shyguy
Level: 24

Posts: 76/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Posted by Jimmy52905
Well thanks for the info guys. However, there is a slight problem...I went to 0x1C010 in a hex editor to add the new banks, but...

1C010: 00 01 02 03 04 05 06 07 78 A9 01 8D 00 20 A9 06

I assume that in the bolded part is where I would write the values 08 - 0F for the new banks. But as you can see, instead of freespace in those last 8 bytes, there is code there. Adding those 8 bytes could be disastrous to the ROM. Is there some way around this or something?
Actually, there should be code here. As the last PRG-ROM, it's where the first code executed when you boot the game is located; so since you want to add PRG-ROM banks, the last bank needs to be moved so that the game doesn't boot into your new expanded blank bank (since you probably won't need all the banks you add). The preceding bytes (00 to 07) are actually the end of the previous bank and seem to be some data of some sort and are irrelevant to your ROM expansion problem (not sure though,correct me if I'm wrong).
I believe you can find some tutorials on Romhacking.net that might help you to better understand the process.

Now, this is the first part to get the technical expansion, but then comes the usage of these new banks - meaning getting to know bank switching and all. I've only worked on MMC3 for Super Mario Bros 3 so I can't be of any help about MMC1. This document may help however (mapper 001.txt).

JaSp
Posted on 05-14-10 10:11 PM, in Where DahrkDaiz has been and the state of Reuben Link | Quote | ID: 131170


Shyguy
Level: 24

Posts: 77/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Posted by DahrkDaiz
Once again, I apologize for such the long delay, ...
You don't have to apologize for that!
Congratulations on your marriage!
Good to know you're still motivated to work on it, as long as it comes out, that's the essential; SMB3 came out in 1988, so it is about 22 years old, so waiting a few more months is nothing compared to that
Hopefully the open-source side of it will make it even more revolutionary! (who said built-in music editor ? )

(I just realized I'm as old as SMB3!)

JaSp
Posted on 05-15-10 10:36 AM, in Where DahrkDaiz has been and the state of Reuben Link | Quote | ID: 131196


Shyguy
Level: 24

Posts: 78/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Posted by CKY-9K
So how about you Jasp?
You got any new stuff in or are you pretty busy too?
Unfortunately, I'm pretty busy creating a commercial game for iPhone (and my first ever full home made game!)
I will probably post about it here once I'm ready to communicate on it to get your opinions
But I'm surely not quiting ROM Hacking, especially when I dream of making a fully featured music editor for SMB3! (not sure if it will ever come out, but you know, in my early days of ROM hacking I dreamed of hacking SMB3's music, and you know what I've done a few years later...)

JaSp
Posted on 05-16-10 05:26 PM, in Where DahrkDaiz has been and the state of Reuben Link | Quote | ID: 131239


Shyguy
Level: 24

Posts: 79/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Posted by KP9000
While you're (possibly) doing that, any chance we'll see some Reuben MMC5 love and be able to use the extra two square wave channels this mapper supports? I mean, if you're going to make a fully featured editor, why not take the time to modify/tear down the engine to support it? I guarantee you nobody else is going to do it, mostly due to lack of knowledge...
Well I can already see many issues with that, it would imply massive rework of the music engine itself (I've only worked with the format so far, not the APU registers stuff); I'm not sure there's enough space in the music engine banks for it, moreover songs would be at least 33% bigger, and that would require to rework the format too (for example, the fact that all channels are relative to the square1 one and take 1 byte,it would easily go over 0xFF for the extra channels and not be convenient at all - not sure I'm being clear here but whatever).
Moreover, I really believe that it would just not have the feel of SMB3 any more it it doesn't sound the same.
So I'm gonna go with "unlikely" here

JaSp
Posted on 05-17-10 06:49 PM, in Where DahrkDaiz has been and the state of Reuben Link | Quote | ID: 131280


Shyguy
Level: 24

Posts: 80/95
EXP: 73594
Next: 4531

Since: 03-02-07
From: Paris, France

Last post: 4402 days
Last view: 4198 days
Yes, one or two channels, it doesn't matter; at this point I guess I could just write my own improved sound engine seeing the massive work that would be required.
Pages: 1 2 3 4 5


Main - Posts by JaSp

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.237 seconds. (329KB of memory used)
MySQL - queries: 132, rows: 164/164, time: 0.226 seconds.