Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,564,127
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 05-09-24 01:08 AM
Guest: Register | Login

Main - Posts by Synthetekh

Pages: 1 2 3 4 5 6 7 8 9 10 11 12

Synthetekh
Posted on 06-22-13 10:35 PM, in Megaman the Wily Wars - Editor news and Game related info (rev. 2 of 06-22-13 10:37 PM) Link | Quote | ID: 154169


Ninji
Level: 35

Posts: 103/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
I don't know on making the visor all black lol, I tried that and couldn't go with it. I think I'm ok with it as it is now.

Hmm, well I'm running Windows 7 myself haha. There is a bug with the palette editor that I'm aware of that involved clicking on it or another control related to it under certain circumstances (can't remember exactly), so I do need to redo that part of the 8x8 Editor Window. But are you saying you get an error every time you close the window? Also, how updated is your .NET Framework (it's heavily dependant on it)?

I could make the source code avaliable (which I plan to do later on) if you want to look at it or w/e, but there's some things I'd like to rework and clean up first. I really wish I could spend more time on it... I could have had a lot more done by now

Synthetekh
Posted on 06-24-13 03:49 AM, in Megaman the Wily Wars - Editor news and Game related info Link | Quote | ID: 154176


Ninji
Level: 35

Posts: 104/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Oh I didn't need help with it haha, just was offering if you wanted to look through it to see what was going on because it seemed like you were having an issue that I wasn't with it, but I see it wouldn't really benefit you since you aren't very experienced with C# yet.

The editor has a lot to go before it's anywhere near finalized btw hehe, but I have the know how to do it, just my body can't handle me sitting at the computer too much right now.

Synthetekh
Posted on 07-01-13 11:42 PM, in Super mario hack U.N owen is her problem (rev. 2 of 07-05-13 10:01 AM) Link | Quote | ID: 154218


Ninji
Level: 35

Posts: 105/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
I don't know about this hack specifically, but some emulators allow games to use various things in their programming that would not work on real hardware.
One example I've seen like this is with the Genesis: Gens will not allow Addresses with odd values (like the actual console), but Kega will.

So it's possible that it could just be how the author programmed some things in the game and not a flaw of the emulator.
Anyone who knows some assembly and the hardware limitations of the NES should be able trace the code, starting around the time it's going to lock up and check if the game is doing anything that's not normally supported (not me heh, I'm still learning about Genesis and 32X hardware right now, and that's all I've touched on so far).

Synthetekh
Posted on 07-05-13 10:48 AM, in Super mario hack U.N owen is her problem Link | Quote | ID: 154230


Ninji
Level: 35

Posts: 106/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Is this the game?

http://www.youtube.com/watch?v=2lnLUoi4WkI&list=PL43A17A9A27A7F353&index=17

I may actually be able to locate the area where it crashes, even though I don't know much about the NES, I do know how to trace even if I don't understand much of the opcodes. Maybe I can at least get an idea of what's happening.

Could you PM me the game or a link to it (I would figure that's ok to do here, since it's private, right?)?

If someone with NES experience would care to do it instead, that would be great, but I'll do what I can for now.

Synthetekh
Posted on 07-06-13 03:12 AM, in Super mario hack U.N owen is her problem (rev. 2 of 07-06-13 03:14 AM) Link | Quote | ID: 154236


Ninji
Level: 35

Posts: 107/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Well, so far I see that in FCEUX it's getting stuck in an infinite loop from Address $C06B - $C0C1. It hits an RTI opcode (Return from Interrupt), and then goes back to $C06B over and over, forever.

The game runs fine in Nes Ten, which also has a debugger, and after $C0C1, it goes to various addresses, some of which include: $9BE3, $AD1E, $DD01, $DFA1, or $E418, $E431.

The game's code starts running at $8000.
The first serious thing I see go wrong is at $8017 (LDA - Load Accumulator.. seems to be a Register labeled 'A' I think...), FCEUX loads 0xFF into the accumulator instead of 0x00 like Nes Ten does. This is because FCEUX is not setting the area of RAM for the CPU to 0x00 all the way through, like Nes Ten is doing. Instead it's filling it with 0x00000000FFFFFFFF.
I tried writing 0x00 all across the CPU's area of the RAM manually before allowing it to run any instructions, but the game still locks up (ends up in the infinite loop still).
Unfortunately this looks like there could be a lot of things causing the game to lock up, and might be a lot of work to fix. I could be wrong, but I'm done for now, I'll look into it more.. probably tomorrow.


I don't know if the same exact thing is happening in Nestopia as FCEUX (since it doesn't seem to have a debugger), but I'd imagine it to be a similar issue.

Synthetekh
Posted on 07-06-13 06:17 AM, in Super mario hack U.N owen is her problem Link | Quote | ID: 154243


Ninji
Level: 35

Posts: 108/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
You're welcome

Yeah it's probably the way the Vertical Scrolling system was programmed, though it seems like various areas of the game have also been modified some.

I hope I can fix this without it becoming anything huge. If it just needs certain things in memory to be initialized to certain values, that shouldn't be a huge issue, as I could probably add some code at the start of the game to jump to a new routine that'll fix that.

I just hope their not using custom opcodes... seems that some emulators are supporting that.

Synthetekh
Posted on 07-07-13 11:43 PM, in Super mario hack U.N owen is her problem (rev. 3 of 07-08-13 05:56 AM) Link | Quote | ID: 154255


Ninji
Level: 35

Posts: 109/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Ok, I think I see what's going on, but I don't necessarily know how to fix it. There are 6 Status Flags: N, V, D, I, Z, C. and 'I' seems to be the important one here. 'I' is the Interrupt Flag. Whenever 'I' is unset (the bit = 0), the PC (Program Counter = Current location that code is being executed/run from) jumps to $C06B in FCEux. In Nes Ten, this does not happen, the program just continues from where it's at regardless. I don't know what defines the location that the program goes back to when an Interrupt happens, but it apparently seems to be $C06B in this case... I guess. Although I would think it would interrupt when the Flag is set, not unset... I'm not sure what's going on here exactly, but I need to research more about how the actual hardware handles Interrupt Requests.

But I can say this, in FCEux, every time the PC is changed, like by a JMP (Jump ~ to specified location), JSR (Jump to Sub Routine), or RTS (Return from Sub Routine) for example, it goes to $C06B if the 'I' Flag is unset, and it's causing serious problems because it keeps making the PC go to $C06B at the wrong times.

Synthetekh
Posted on 07-08-13 02:29 AM, in Zelda PPU (rev. 3 of 07-08-13 02:33 AM) Link | Quote | ID: 154257


Ninji
Level: 35

Posts: 110/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
How it looks can depend on the Address that the Gfx you're looking for starts at (this can shift the pixels so that 1 8x8 Tile is being displayed throughout the boundaries of 2 8x8 Tiles). Is this for the 1st Zelda game on the NES?

Synthetekh
Posted on 07-09-13 12:48 AM, in Zelda PPU (rev. 4 of 07-10-13 01:54 AM) Link | Quote | ID: 154265


Ninji
Level: 35

Posts: 111/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
The Sprite Gfx aren't compressed, and typically Sprites in all games use uncompressed Gfx, this goes for SNES, Genesis, and GBA as well (I can't even think of one game in which they were compressed).

This I believe to be because Sprites don't normally use much data for their Gfx (because their small, and there usually isn't that many sprites in a game that it would all add up to too much in total), and some Sprites may need load Gfx mid-level, and loading compressed Gfx is slow, though it wouldn't really matter either way if it's only 4 Tiles or something around there. Animated Gfx in the level is typically uncompressed too.

One thing you can do to easily locate uncompressed Gfx is: while running the game, open an '8x8 Tile/PPU viewer' (with an Emulator that has one) while the Gfx you're looking are loaded, and look at the color numbers that are used for each pixel. Then search the data that would make up the Tile in a Hex Editor (but you need to know the format of the 8x8 Tile of course).


Here's the Gfx Format for the NES:

Each Pixel is 2 bits (and there's 8 bits in a Byte), however, the NES uses two planes, meaning that the image is drawn twice (so it's not as seemingly strait forward). Each plane is using only 1 bit per Pixel and then the two planes are merged together.

Colors: 0, 1, 2, 3 = Bits 00, 01, 10, 11
Plane 1 is setting the 1st Bit only (the one on the right in each set of two).
Plane 2 is setting the 2nd Bit only (the left one in each set of two).

Here's an 8x8 Tile shown with the Color number of each Pixel, along with the Tile broken down into bits divided into the 2 Planes.

~ Color #'s ~ ~~~~~ ~ Plane 1 (1st Bit) ~ ~~~ ~ Plane 2 (2nd Bit) ~
1 1 3 3 3 3 0 0 - -------- - 1 1 1 1 1 1 0 0 - -------- - 0 0 1 1 1 1 0 0
3 3 3 3 3 1 0 0 - -------- - 1 1 1 1 1 1 0 0 - -------- - 1 1 1 1 1 0 0 0
1 3 3 3 1 1 0 0 - -------- - 1 1 1 1 1 1 0 0 - -------- - 0 1 1 1 0 0 0 0
3 2 2 3 1 1 3 0 - -------- - 1 0 0 1 1 1 1 0 - -------- - 1 1 1 1 0 0 1 0
2 2 2 1 1 3 3 3 - -------- - 0 0 0 1 1 1 1 1 - -------- - 1 1 1 0 0 1 1 1
2 2 2 0 3 3 3 3 - -------- - 0 0 0 0 1 1 1 1 - -------- - 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 - -------- - 0 0 0 0 0 0 0 0 - -------- - 0 0 0 0 0 0 0 0
1 1 1 3 3 3 2 2 - -------- - 1 1 1 1 1 1 0 0 - -------- - 0 0 0 1 1 1 1 1

If you were to combine the Bits of Plane 1 and 2, it would look like this (but this is not the goal for us, since it's not stored this way in the ROM):

01 01 11 11 11 11 00 00
11 11 11 11 11 01 00 00
01 11 11 11 01 01 00 00
11 10 10 11 01 01 11 00
10 10 10 01 01 11 11 11
10 10 10 00 11 11 11 11
00 00 00 00 00 00 00 00
01 01 01 11 11 11 10 10

Each Row of a Plane is 1 Byte (8 Bits), the whole Tile of one Plane is 8 Bytes (8 Rows, 1 Byte per Row).
Now to find the Hex value of the Tile, simply enter the Bits in Plane 1 into Windows Calculator, from left to right (starting with the top left bit, the same way you read English text). Then change the display to Hex and you should have (do it again but for Plane 2 and add that to the end):

______ Plane 1 ______ ~ ______ Plane 2 _______
FC FC FC 9E 1F 0F 00 FC - 3C F8 70 F2 E7 EF 00 1F

This is exactly as it will show up in the Hex Editor (just use its search feature and enter the Bytes to instantly located your Tile; I use Hex Workshop btw, though it's not a free program ~ torrent it! lol j/k >.>).
Then just look at the current Address in the Hex Editor, and scroll down in Tile Layer Pro until the Offset (the term they use in that program, same thing) is around the same, and you should see your Tile. If the start of the Tile's Data doesn't start at the beginning of every 16 Bytes, it will be shifted around and look weird, in that case you can copy the Data from the Hex Editor into in a new file (needs to be 0x2000 Bytes to view in TLP, unless that was changed in v1.1), just copy more of the data than you think you'll need (better to have some random Gfx data at the end than to be missing some Gfx Data), and if needed insert extra 0x00's until the file size is 0x2000 Bytes or more (8192 Bytes in Decimal).

Synthetekh
Posted on 07-09-13 09:18 PM, in Zelda PPU (rev. 2 of 07-09-13 09:31 PM) Link | Quote | ID: 154278


Ninji
Level: 35

Posts: 112/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
lol np, glad I could help.

Btw Chaobomr, sorry if what I wrote is hard to understand, I'd imagine it's above your level at this time, as it's a slightly more advanced technique, but if you can understand it it'll make finding Uncompressed Graphics very quick and easy. It's easier with the Genesis because the Gfx format is very simple, but for the NES it's a little more work.

Synthetekh
Posted on 07-10-13 01:51 AM, in Zelda PPU Link | Quote | ID: 154281


Ninji
Level: 35

Posts: 113/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Glad to hear that . xvi32 looks like a suitable for this job. I don't know what FCEUXD is, but that sounds like a tool inside FCEux to me. Anything of that sort probably wouldn't work in the same way, as it would show data that's been loaded in RAM, rather than the whole ROM data (the same data would exist as what's in the ROM, if loaded, but you wouldn't be able to make any permanent edits that way, and you'd be looking at RAM Addresses instead of ROM Addresses).
Also I don't know anything about Ubuntu, but after doing a quick Google search Bless seems to be a full featured Hex Editor, so that ought to be good.

Synthetekh
Posted on 07-18-13 06:51 AM, in Making bosses tougher in SMB3 (rev. 7 of 07-18-13 08:41 AM) Link | Quote | ID: 154338


Ninji
Level: 35

Posts: 114/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Not sure about that (I could perhaps find such as thing if I looked up some Sprite IDs), but through tracing I found something that seems to work as best as for what seems to be available, but not perfect.. it's a little strange but pretty good.

ROM Address 10A5: The default value is 0x03, and lower values make him jump higher, but if you go in the negative range (0x80 - 0xFF) he just floats up to the top of the screen and gets stuck. Unfortunately there's not much that can be done when the value is 3 without massively changing his jump height, but you can change it a few values. If you make him jump higher, he'll act like he has less Gravity in the upper arch of his jump.

Another value you can play with is Address 1D27, but this is a little weird, and depending on the value you set it can seriously change his X Axis movements too (0xF0 - 0xFF are seemingly the only good ranges for this one).

I don't think the jumping was programmed really well by the looks of things, even for Mario. I don't see smooth movements at the height of the jump like a gravity & jump power kind of system would have. It seems a little rigged to work right and if values go outside of certain ranges shit gets screwy.


The same Value (at 10A5) can be found in SMAS + World (with header) at Address 10B1DD, or searching 0x03014000F80840B0 in any SMAS game should probably locate it (I know you're not editing SMAS, but w/e lol, wasn't hard to find once I found it in the NES).
Also the same thing for 1D27 can be found at 13AA23 in SMAS + World (with header), or search 0xF0882848755F955F.

Synthetekh
Posted on 07-19-13 12:40 PM, in Making bosses tougher in SMB3 Link | Quote | ID: 154350


Ninji
Level: 35

Posts: 115/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Well, yeah it's looking like 100% asm, however that value of 3 at Address 10A5 is acting as just a value, because it's using that to add 3 (not 3 pixels, but there's a counter that's using this to add 3 to a 2 digit number) every frame when boom boom jumps. Even though this is asm, the value I gave you can be edited safely (you won't make any illegal instruction and crash the game by doing so).

Synthetekh
Posted on 07-24-13 02:36 AM, in Megaman the Wily Wars - Editor news and Game related info Link | Quote | ID: 154392


Ninji
Level: 35

Posts: 116/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Just wanted to let you all know that I've been doing pretty decent lately, and I think it's safe to say that I'll be able to work on the Editor again. I've actually already been doing a little work on it the past month.

I'm redoing some things at its core right now, but after that I'll be back to work on adding functionality. I really would like to get it to the point of actually editing the levels soon; I don't know how long that will take, but I'm chipping away at it.

Synthetekh
Posted on 07-24-13 10:39 PM, in Megaman the Wily Wars - Editor news and Game related info Link | Quote | ID: 154399


Ninji
Level: 35

Posts: 117/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Sounds good thanks. When I get more done and get things pretty solid, I'll be ready to upload it for further testing.

Synthetekh
Posted on 07-24-13 10:42 PM, in Who has the Red Falcon Download link? (rev. 2 of 07-25-13 12:48 AM) Link | Quote | ID: 154400


Ninji
Level: 35

Posts: 118/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
If you're talking about Contra: Revenge of the Red Falcon, it's here (bottom of first post):
http://acmlm.kafuka.org/board/thread.php?id=7715

Edit: That's a demo of Levels 5 & 6, so I guess just look at the romhacking.net link provided by snarfblam instead.

Synthetekh
Posted on 07-26-13 06:00 PM, in Super Mario 64 How to change mario's voice (rev. 2 of 07-28-13 02:33 AM) Link | Quote | ID: 154470


Ninji
Level: 35

Posts: 119/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
That's kind of a test it and see how it sounds kind of thing I think. Luigi is in Mario 64 DS and both Mario Galaxy games, plus Brawl and Mario Kart Wii; maybe you could find enough audio dialog to fill everything..? I've already extracted the voices from MK Wii before, and I could probably do it for the other Wii games easily, just as long as they use the same sound formats.
If you think that'll be helpful, let me know and I'll be happy to help with that.

Synthetekh
Posted on 08-02-13 06:16 AM, in Super mario hack U.N owen is her problem Link | Quote | ID: 154522


Ninji
Level: 35

Posts: 120/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Ehh whoops sorry lol, got distracted with my Wily Wars Editor. I'm not sure if I'm going to keep messing with this. It looks like it could get very involved. I'm not sure why status flags where being managed different between Emulators. If the custom code in that game is made to work with Emulators that work a certain way (whether correct or flawed compared to real hardware), it could mean reprogramming all or much of the custom code for this game .

I'm feeling a bit overwhelmed with things right now... I have a lot of projects to work on from multiple programming projects to various energy experiments, and other various things (such as figuring out how to make a good solar water distiller and actually building it, and also learning about aquaponics systems, for example). And to top it all off I'm having physical limitations (serious flexibility problems, which makes simple tasks much more difficult), and trying to find solutions to that.

I'm sorry, I'd like to help more, and not just focus on my own interests as most people would usually do, but I just feel... tired, and like everything takes so much time.
I hope to help with this some other time, but I don't think I can do any more for a while at least.

Synthetekh
Posted on 02-10-14 01:16 AM, in Super Anime Girl Kart Link | Quote | ID: 155662


Ninji
Level: 35

Posts: 121/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
Reminds me of Rosenkreuz Stilette (same thing but as a Megaman imitation). Should be interesting to see.

Synthetekh
Posted on 08-22-14 12:07 PM, in Where can I find MM10 stage graphics? (rev. 4 of 08-23-14 06:54 AM) Link | Quote | ID: 157871


Ninji
Level: 35

Posts: 122/239
EXP: 261672
Next: 18264

Since: 08-15-10
From: New Mexico, USA

Last post: 107 days
Last view: 1 day
I don't know if this can be useful to you a few weeks later, but:

I've hacked some of MegaMan 9 (pretty simple overall - the data is structured similar to other MegaMan Games), and I figure MM9 and MM10 will probably be about the same.

Would you like me to share the notes that I have so far with you (plus info on how to unpack & repack the Wad file)?
Otherwise I will wait until they are more complete to give to the world (very much in a WIP state currently), but I don't mind one bit either way.

Btw, the Gfx in MM9 is in GBA 4bbp format (16 Color Palette Lines, though they only use the first 4 Colors to simulate the NES).

I've found the Level Palette Data as well amongst some other things: 16x16 Tile Structures, 16x16 Collision Properties, Room data (16x16 Tile placement in the Level), Level Matrix (just for Room placement in the Map so far, but not screen lengths and such yet), and I've learned the formats. I also found the Music (though I won't understand the Music data until I learn more about Music in general, but I can find the Channels for each song (I've done a couple so far), as they are separated).


Edit: I also just discovered some Sprite Mappings, and am working on the format for that right now.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12


Main - Posts by Synthetekh

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

Page rendered in 3.891 seconds. (338KB of memory used)
MySQL - queries: 133, rows: 165/165, time: 3.869 seconds.