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

Main - Posts by Parasyte

Pages: 1 2 3

Parasyte
Posted on 04-11-09 09:42 PM, in Mega Man 7 editor and general hacking Link | Quote | ID: 104918


Red Goomba
Level: 18

Posts: 21/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
The only thing it has in common with web browsers is that it is capable of displaying images. :x

I know, I've already violated one of the most important rules to new open source software start-ups (proof). One of the problems I face is requiring users to download a 7MB runtime just so they can do something silly like open a ROM so they can see the level renderings which are already uploaded to my website. (See OP.)

For Ubuntu users, it's a piece of cake: XULRunner 1.9.0 is installed by default. Users only need to download the gz/bz2 from hgkw, and run a simple command:
xulrunner /path/to/syndrome/application.ini


For Windows and Mac OS X users, it's not so trivial. Either the user must download XULRunner, or Firefox (which has its own "private" XULRunner included).

The other options for Windows users include: 1) creating a XULRunner package (XPI) that can 'installed' to the XULRunner environment by double clicking the icon, 2) creating a full executable [classic] installer, complete with a XULRunner build, if necessary; this is how XR apps like SongBird currently do it.

Truth is, I'm still not entirely familiar with the platform, so it's hard to say what's the best way to make an installer.

Parasyte
Posted on 10-18-09 08:32 AM, in Mega Man 7 editor and general hacking Link | Quote | ID: 117448


Red Goomba
Level: 18

Posts: 22/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Nothing to report, exactly. I haven't forgotten about this project. Just not seen any new community interest in it...

Parasyte
Posted on 10-19-09 06:05 AM, in Mega Man 7 editor and general hacking (rev. 2 of 10-19-09 06:06 AM) Link | Quote | ID: 117503


Red Goomba
Level: 18

Posts: 23/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
RT-55J: That sounds about right. Mega Man 7 is not one of my favorite games, either. I haven't tried the debugger in bsnes; in fact, I only heard about it yesterday. (I've been keeping myself busy with other things for quite a long while.)

Kiokuffiib11: It doesn't do much. It can only draw stages in their first palette, and shows the location of objects on the map. If you got that far, yes that's really all there is. Also, it only supports the US v1.0 ROM.

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


Red Goomba
Level: 18

Posts: 24/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Props, Daiz. I like the idea of throwing out the old [level format] and bringing in the new. In fact, I like it so much, I'm almost inclined to believe it was my idea.

Parasyte
Posted on 12-03-09 03:51 AM, in Public Service Announcement: Use of the term "TSA" (rev. 4 of 12-03-09 04:08 AM) Link | Quote | ID: 121338


Red Goomba
Level: 18

Posts: 25/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Remember kids, every time you use the term "TSA", God kills a [potentially awesome] ROM hacker. This message brought to you by: http://www.kodewerx.org/wiki/index.php/Syndrome#Compression

So here's the deal: the popular term "Tile Squaroid Assembler" ("TSA") doesn't make any sense. As mentioned in the link above, "Squaroid" is not a real English language word. Not mentioned in the link, the encoding method is useful outside of tile placement. It is optimized for 2-dimensional data arrays (like images), but is also commonly implemented with 1-dimensional data for text compression (many a ROM hacker/translator is familiar with this). It can even be expanded to further multidimensional arrays.

The problem here is one of convention; the name is bad, and needs to be changed to something that makes sense. Alternatives such as "Map 16" make even less sense in the grand scheme; the Mega Man series game engines use multiple levels of this encoding method to reference not only 16px x 16px pieces of an image, but also 32x32, 256x256, and a final arbitrary size (that of the complete stage; which is almost never a perfect square). "Map *" is a bad name for these reasons, not to mention the argument for multidimensional data encoding as stated above.

It's hard to say what the encoding method is really called. Most notably, and at its most basic, it is simple array indexing. Suggestions, anyone?

Edit: Fixed the link and expanded form of the acronym.

Parasyte
Posted on 12-04-09 12:31 AM, in Public Service Announcement: Use of the term "TSA" Link | Quote | ID: 121449


Red Goomba
Level: 18

Posts: 26/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
I can see the logic behind "metatile" and "block" used to describe the encoding method. They tie in well with 2D arrays, but not much else.

Parasyte
Posted on 12-05-09 05:17 AM, in Public Service Announcement: Use of the term "TSA" Link | Quote | ID: 121539


Red Goomba
Level: 18

Posts: 27/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Too bad CAN'T HACK METROID AM GOAL didn't stick...

Parasyte
Posted on 12-06-09 07:38 PM, in 6 to 8 lettered game genie codes Link | Quote | ID: 121648


Red Goomba
Level: 18

Posts: 28/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Perhaps the question you should be asking is, why?

The only difference between a 6-digit Game Genie code and an 8-digit code is that the latter includes a data checking (condition) parameter. The data check helps to ensure the code output is only sent to the console when the proper ROM bank is loaded.

So ... If you have a 6-digit code that is working, why bother turning it into an 8-digit code? It's not like its a dumb processes (able to be done by a simple program/algorithm) anyway; you still need to know the correct input byte from the original ROM bank.

If you are already aware of all this, you should have also known that any Game Genie encoder/decoder is just the tool you need; Paste the 6-digit code, you'll be given the raw (address ? condition : data) format. The (condition) will be blank, of course, so fill it with the input byte from the proper ROM bank, and convert it back to a Game Genie code.

Simple, no?

Parasyte
Posted on 12-07-09 10:23 PM, in 6 to 8 lettered game genie codes Link | Quote | ID: 121766


Red Goomba
Level: 18

Posts: 29/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Posted by Jigglysaint
Para, I thought the compare value only checks the individual value, not the rom bank. If there's no compare, then all addresses in the game are affect, but with the compare, only bytes that match the compare value will be altered. Correct me if I'm wrong though.

Edit: Found a document on it: http://tuxnes.sourceforge.net/gamegenie.html


Uh yeah, that's what I said. Didn't mean to make it sound like the comparison was for ROM bank numbers (since there is no general [easy] way to get that information in hardware). Sorry for any confusion.

Posted by born2party
Posted by Parasyte
Perhaps the question you should be asking is, why?


So ... If you have a 6-digit code that is working, why bother turning it into an 8-digit code? It's not like its a dumb processes (able to be done by a simple program/algorithm) anyway; you still need to know the correct input byte from the original ROM bank.


Because unlike 8 digit codes, 6 digit turns up 20 or more possible rom addresses.
Where 8 only has 1 or a few.

Plus i have read tutorials that stated that 6 digits have more side effects than 8 and often tend to cause crashes.


I don't understand that; possible ROM addresses? There are two ways to look at ROM in a bank-switching computer (like NES): 1) As a complete ROM chip; just one large file. 2) The same way a CPU with limited address space sees it; in smaller pieces, usually only 1 or 2 banks at a time.

In the former interpretation of "ROM addresses", each address references only a single byte. This is simple; you see files in this light all the time.

In the latter interpretation, you realize that a CPU address of something like $8000 can be remapped in hardware to point to different banks within the ROM. On the other hand, address $E000 [likely] cannot be remapped at all, and so it can only reference a single byte in a single bank.

This was a short lesson, and much important information was left out. But the gist is simple: the lack of the comparison parameter in a Game Genie code does not inherently make the game less stable or cause more crashes. There is a high probability that they will be less stable, yes. But do not take this as canon.

How do you know if you need the comparison parameter? Well, that depends on the mapper used in the game you're working with. Some mappers have 16KB of ROM space "hard wired" at $C000-$FFFF; any Game Genies address that falls within that range do not require the comparison parameter. Other mappers have 8KB "hard wired" at $E000-$FFFF. And yet others have the full 32KB of ROM space "hard wired" ($8000-$FFFF).

As for how you actually use the comparison parameter after it's determined to be necessary... well, I assume you know the data byte you're intending to replace with the code; that data byte is what you put into the comparison parameter.

Here is an example:

Assume, for a moment, that you just debugged your favorite game and found an "LDA" instruction (opcode: $A9,$xx) that loads the number of lives you start with. In this case, the $xx might be $03... Anyway, you want to replace the $03 with something a little more fun, like $32 to start with 50 lives.

Now assume the address of this instruction is at address $D5F3, and that the mapper uses an 8KB "hard wired" bank (at $E000-$FFFF). Since the address does not fall within the "hard wired" bank, using the comparison parameter is a good idea.

The opcode at $D5F3 is $A9, so the $03 must be at $D5F4; you will use that address for your Game Genie code.

Six-digit format = D5F4 : 32
Eight-digit format = D5F4 ? 03 : 32

Does that make sense? The only difference is the "? 03" -- which came from the original instruction:

$D5F3: A9 03      LDA #$03

Parasyte
Posted on 12-07-09 10:35 PM, in Public Service Announcement: Use of the term "TSA" Link | Quote | ID: 121767


Red Goomba
Level: 18

Posts: 30/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Posted by MathOnNapkins
MapX is only descriptive when the metatile objects themselves are squares, though. From what I understand, the "TSA" in Mega Man games features any number of different shapes. The game I hack even uses non square TSA in the dungeons (LTTP).

MapX is a subtype of whatever we want to call this phenomenon.


Close; the only non-square shapes that can be built by this method in the Mega Man series are the maps (stages) themselves. However, the point stands that it can be used to create non-square shapes; I attempted to cover this in the original post, referencing multidimensional arrays. The indexing/hash table method can be used to create lines, rectangles, cubes, cuboids (yes; this one really is a word), or hypercubes, to list just a few. Naming it after shapes is hopeless...

Just one simple name, that's all it needs. Not a context-sensitive, situation-dependent series of names, evoked when the term fits the bill. That's why I've been trying to use terms like "hash table" and "array indexing"; but these are not quite descriptive enough. Short of that, "TSA" and "Map *" hurt my grammatical-oriented mind.

Parasyte
Posted on 12-08-09 07:13 PM, in Public Service Announcement: Use of the term "TSA" (rev. 3 of 12-08-09 07:23 PM) Link | Quote | ID: 121846


Red Goomba
Level: 18

Posts: 31/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Speaking of confusion, the "HOA" acronym is typically used to refer to Home Owners Associations, which are evil by association (excuse the pun).

Posted by MathOnNapkins
On the other hand, abbreviations are often context sensitive. If I ask someone for an ATM at a gas station they probably aren't thinking of this.

Nor this. (You can tell I work in IT. )

Also, I argue that column-based game engines (Super Mario Land, Legend of Zelda, ...) are just using 1-dimensional variations of the same concept. Considering it to be something different for that attribute alone is kind of silly.

That would be like calling all of the different LZ variants by names that don't include those two letters; Wikipedia's list includes: LZ77/78 · LZSS · LZW · LZWL · LZO · LZMA · LZX · LZRW · LZJB · LZT · ROLZ. Imagine if another variant was called something ridiculous like "Reduced Sliding Window Mapping algorithm; RSWM" ... Sure, the name might fit what the algorithm *does* but it does not describe the algorithm *family*.

Parasyte
Posted on 12-13-09 08:25 PM, in Public Service Announcement: Use of the term "TSA" Link | Quote | ID: 122514


Red Goomba
Level: 18

Posts: 32/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Something to the tune of "Layout Sets", "Layout Groups", or "Layout Classes" ...

I think the term "layout" accurately describes the method of arrangement, without being overly verbose. Avoiding the term "tile" is a good thing, because it could be applied to sets of vectors in 3-dimensional space, just as easily as it is applied to sets of tiles in 2-dimensional space. Avoiding the term "map" is also a good thing, since "maps" are also typically thought of as using a 2-dimensional coordinate system.

Parasyte
Posted on 12-24-09 09:01 PM, in RLM + HDMA bug? (rev. 2 of 12-24-09 09:04 PM) Link | Quote | ID: 124000


Red Goomba
Level: 18

Posts: 33/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
As the author of RLM, I'm never told of any bugs that people encounter with it. (The main complaint, actually, is that users can't figure out how to run it. LULZ!)

However, I have heard that hacks making use of HDMA cannot be properly unlocked by RLM. Apart from this random claim (made about two years ago, as I recall) I have no evidence that this is actually a problem.

My question for you all, has anyone ever seen a case of an unprotected hack which cannot be opened properly in Lunar Magic, or run properly in an emulator? And more importantly, can anyone provide an example hack where this actually happens? I'll be glad to investigate and fix any bugs.

What I won't do is write a freakin' GUI for the program, because it would just be a window with a single button that says, "Unlock" ... most pointless GUI ever! Though I could change the semantics on the command line arguments to allow accepting only an input file name; in the case that an explicit output file name is not given, a new file name will be implicitly chosen. At the least, that will enable users to drag their locked ROM onto rlm.exe within their file manager, and it will "Just Work".

Thoughts?

Parasyte
Posted on 12-25-09 06:23 PM, in Merry Xmas: Reuben 1.0 and flaghsip hack: Mario Adventure 3! Link | Quote | ID: 124096


Red Goomba
Level: 18

Posts: 34/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Pwnd.

Parasyte
Posted on 12-26-09 06:21 PM, in RLM + HDMA bug? (rev. 3 of 12-27-09 05:11 AM) Link | Quote | ID: 124172


Red Goomba
Level: 18

Posts: 35/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
This is the post in question (which claimed HDMA was responsible). Again, I have no idea where this information originated, or what kind of evidence is available to support it. Also, it wasn't posted two years ago, like I thought. But 10 months ago.

http://jul.rustedlogic.net/thread.php?pid=101233#101233

Is anyone actively looking into these RLM bugs? I've got some "leads" in this thread, but no hard evidence, yet.

EDIT: "Panic in the Mushroom Kingdom" 1 & 2 are definitely broken when unlocked. I see RLM version 1.3 on the horizon...


EDIT 2:
I've located the bug that causes graphic corruption, and released RLM v1.3 today: Downloads

New in this release:
v1.3 (12-26-09):
* Fixed yet another last-known-problem with (what I believe is) "Super ExGFX".
* Support for drag-n-drop (see "Using RLM").
* Readme cleanup.


This fixes "Panic in the Mushroom Kingdom" 1 & 2 (and probably a lot of other hacks). With that said, are there any problems that v1.3 doesn't fix?

Parasyte
Posted on 12-26-09 11:01 PM, in asm programming = slave labor Link | Quote | ID: 124197


Red Goomba
Level: 18

Posts: 36/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
It's a stretch to claim that writing assembly is "slave labor" (it never caused any revolts or revolutions when developers were using it just perfectly well up until the mid-90's). Besides, you don't have to know a thing about assembly for writing your own games for SNES. Use the C language.

Not everyone is cut out to write their own operating system... (Which is exactly what you're doing when you're writing a game engine!)

Parasyte
Posted on 12-27-09 05:36 PM, in asm programming = slave labor Link | Quote | ID: 124264


Red Goomba
Level: 18

Posts: 37/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
Posted by Aaendi
They got money for it and I don't, and besides isn't C really slow?

There's still money in game development today, and there's still no revolts or revolutions. What's next? "C/C++ programming = slave labor?"

Parasyte
Posted on 12-27-09 05:41 PM, in [SMD]How to hack Gens to use 2megabytes as RAM?? (or: how NOT to hack) Link | Quote | ID: 124265


Red Goomba
Level: 18

Posts: 38/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
I'm sorry, but, this is a horrible idea. If you can't program/hack around the inherent system limitations, give up! Don't go "fixing" it by emulating hardware that didn't exist. And for that matter, don't go "fixing" it by creating new hardware just so it can be emulated.

*sigh*

Parasyte
Posted on 12-27-09 09:13 PM, in [SMD]How to hack Gens to use 2megabytes as RAM?? (or: how NOT to hack) Link | Quote | ID: 124308


Red Goomba
Level: 18

Posts: 39/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
There was a similar project called "Ultimate Mortal Kombat Trilogy" which also requires a customized emulator to play. Once it gets to that point, you might consider writing a modern game, instead of hacking one for old hardware that can't faithfully reproduce your vision.

Parasyte
Posted on 12-29-09 04:15 AM, in asm programming = slave labor Link | Quote | ID: 124430


Red Goomba
Level: 18

Posts: 40/48
EXP: 24788
Next: 5109

Since: 02-09-09
From: Flagstaff, AZ

Last post: 5211 days
Last view: 5189 days
You're right; other CPUs have other architectural flaws.
Pages: 1 2 3


Main - Posts by Parasyte

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

Page rendered in 0.234 seconds. (331KB of memory used)
MySQL - queries: 133, rows: 165/165, time: 0.223 seconds.