(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-09-24 05:34 PM
Acmlm's Board - I3 Archive - - Posts by Guy Perfect
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
User Post
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-07-05 08:32 PM, in F-Zero X -- Editor Project Link
Production Checklist
(Level Editor Production at MFO)

Legend:
[ ] Uncompleted task
[\] Task in progress
[×] Completed task

Programming archetecture:
[×] Redesign 3D programming interface
[×] Create Bézier Spline Loop program module
[×] Create MIO0 decoder
[×] Create spline manipulation routine
[×] Redesign IEEE754 codec
[×] Implement spline stuff in 3D
[×] Create ROM course decoder
[ ] Redesign course file format and create codec
[×] Conform CRC64 code into project
[×] Create course geometry spline generator
[ ] Create relative camera transformation module
[ ] Create pixel projection routine
[×] Create texture loader
[×] Generate display lists
[ ] Hard code widgets and decorations
[ ] Create windowed interface
[ ] Create menus and property windows

N64DD stuff:
[ ] Save up to purchase the N64DD and FZXEK
[ ] Trial for built-in limitations
[ ] Record undocumented music and video

Ghost Info:
[\] Investigate Staff Ghost storage format
[\] Investigate Project64 save data user ghost

Machine Info:
[ ] Analyze Original Machine codes by fzeroman
[ ] Attempt to implement Original Machines into ROM

Other tasks:
[×] Look into the ROM again for pointers
[×] Hack horizon rotation algorithm
[ ] Create PNG codec for program textures
[ ] Run through a vigorous testing cycle
[ ] Document findings
[ ] Obtain a copyright
[ ] Release the program




I saw Blue Falkon’s post in the ‘‘we’ll kill you if you ask for an editor’’ thread, and I thought I’d just make a li’l announcement:

I’m giving the project another go.

I’ve done some thorough research of the things I need to do and I’m starting the program over from scratch (while keeping all the data I found about the ROM, of course). Progress will be slow as I will make sure everything is absolutely as it needs to be for every future iteration of production.

The MFO equivalent of this thread is here: Level Editor - Take 2



EDIT:
There are a few things that someone could help with in terms of for-real ROM Hacking (not just the rudimentary programming spiel), but that information will be let out later. For now, just hang tight whilst I put together the editor software architecture.


(edited by BGNG on 12-09-05 09:41 PM)
(edited by BGNG on 12-10-05 09:07 PM)
(edited by BGNG on 12-13-05 11:55 PM)
(edited by BGNG on 12-14-05 07:47 PM)
(edited by BGNG on 12-14-05 09:44 PM)
(edited by BGNG on 12-16-05 03:38 PM)
(edited by BGNG on 12-16-05 08:50 PM)
(edited by BGNG on 12-17-05 05:39 PM)
(edited by BGNG on 12-18-05 01:22 PM)
(edited by BGNG on 12-18-05 08:55 PM)
(edited by BGNG on 12-21-05 04:52 PM)
(edited by BGNG on 12-23-05 03:48 PM)
(edited by BGNG on 01-07-06 10:12 PM)
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-08-05 12:14 AM, in F-Zero X -- Editor Project Link
If you need any help at all with OpenGL, just call your local BGNG.


(edited by Guy Perfect on 10-01-06 10:59 PM)
(edited by Guy Perfect on 10-01-06 11:01 PM)
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-09-05 10:41 PM, in F-Zero X -- Editor Project Link
Just as I did over in the MFO thread, I've put up a tentative checklist of things that need to be done in order to create the editor. As I progress, I will fill in the checklist.

If you have any questions about any of the listed tasks, just post them here.

Also, be sure to refer to the MFO version of this thread as well. I'll be posting details on what I accomplish there, but not here. The Acmlm ROM Hacking forum will not be able to archive the information thusly.



EDIT:
Worthy of mention is that Heian-794 (who was active in this forum somewhat before the archive was put up) is selling his N64DD and F-Zero X Expansion Kit... to me. He's agreed to wait until I save up enough money to purchase it from him, so I'm counting on its aquisition as part of this project.


(edited by BGNG on 12-09-05 09:47 PM)
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-10-05 04:53 PM, in Coming soon... Link
Hey, that "Product Activation" thing is an awesome idea. You know why? Because that means software developers are able to exert control over how their technologies are used.

Brilliant! Together, Kawa, you and I will further my dream of removing the Public Domain once and for all! BWAHAHA! Then the only thing left will be corporately-controlled commerce! The public won't have any say in the matter! BWAHAHA again!

You, Kyoufu Kawa, are one of the most delightfully evil people I've ever met. Well done. Once they find out you're manipulating them with illegal activities in the first place, it will already be too late. Excellent scheme you've come up with.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-10-05 05:15 PM, in Coming soon... Link
I'm one of those open-source junkies, so I have a natural predisposition to disliking the manipulation of fair use.

Though I do warn you: The Nintendo GBA and everything in it (particularly the music engine coded into the system's BIOS) is protected under U.S. and international copyright laws. Of them, Title 17, Chapter 13, Section 1309 states the following two regulations:


(a) Acts of Infringement. - Except as provided in subsection (b), it shall be infringement of the exclusive rights in a design protected under this chapter for any person, without the consent of the owner of the design, within the United States and during the term of such protection, to -

(1) make, have made, or import, for sale or for use in trade, any infringing article as defined in subsection (e); or

(2) sell or distribute for sale or for use in trade any such infringing article.

(e) Infringing Article Defined. - As used in this section, an "infringing article" is any article the design of which has been copied from a design protected under this chapter, without the consent of the owner of the protected design. An infringing article is not an illustration or picture of a protected design in an advertisement, book, periodical, newspaper, photograph, broadcast, motion picture, or similar medium. A design shall not be deemed to have been copied from a protected design if it is original and not substantially similar in appearance to a protected design.
While ROM hacking in itself is not illegal, it does fit the description of an infringing article defined in subsection (e) by being a design copied from another design protected under the copyright law. Releasing hacks and utilities to the public domain is not illegal.

However, requiring a registration falls under the category of "for use in trade" as documented in subsection (a). Since, as mentioned before, the utility qualifies as an infringing article, and since, as just mentioned, the registration counts as use in trade, releasing the utility under both conditions constitues a legal copyright infringement.

As such, the Entertainment Software Association has been given executive authority in hundreds of countries around the world to enforce criminal prosecution in regards to international copyright laws (which is why the U.S. law I posted here is a threat).

If you include this registration feature, Kawa, you're exposing yourself to potential criminal prosecution to the fullest extent of the law... any law that's applicable in international copyrights.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-10-05 10:41 PM, in General Project Screenshot Thread Link
Here's an old pic from back in May. It's technically part of the same project.

Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-14-05 10:46 PM, in F-Zero X -- Editor Project Link
12/10/2005 20:00 CST:
IEEE-754 codec completed.



12/13/2005 22:40 CST:
Spline manipulation routine completed.
Check out the link for this one. It's neato.



12/14/2005 18:25 CST:
Splines implemented in 3D



12/14/2005 20:40 CST:
Horizon rotation algorithm hacked



You remember a while back when the horizon rotation stumped me? Turns out that 2-byte rotation value was actually part of a 4-byte IEEE-754 Single. Now we know.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-16-05 09:49 PM, in F-Zero X -- Editor Project Link
I appreciate your suggestion, but I'm a stickler for desiring utmost control over my programs. Only as a last resort will I consult to use someone else's code in one of my programs that wasn't designed specifically for that program by said someone else. I have references to the PNG specification (namely RFC 2083), so I shouldn't have to resort to others' code.



An update!

I've ammended two sections to the checklist up above:

Ghost Info
When hacking the ROM data way back in June '04, I stumbled across the Staff Ghost data in the ROM. What I fool I was, for I considered it inconsenquential and ignored where it was. So I'll have to look it up again.

Regardless, with proper support for Staff Ghosts in the level editor, it shouldn't be a huge deal to take a Project64 save file and extract the user ghost from it (which can be set after a race in Time Attack) and use that as any original course's Staff Ghost when patched to the ROM.

Machine Info
Ever since fzerman hacked the Original Machine data in the retail game with a GameShark, I've considered looking up the data and seeing if the codes could be reverse-implemented into the ROM... Meaning: The editor project may end up being able to supply custom machines as well as courses.

Keep your fingers crossed and hope for the best.



12/16/2005 19:35 CST
ROM Course Loader complete.

Here ya go, since people like pictures:

Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-17-05 06:38 PM, in F-Zero X -- Editor Project Link
12/17/2005 16:32 CST
Course Geometry Spline Generator completed.

Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-17-05 08:23 PM, in F-Zero X -- Editor Project Link
This thing runs at reasonable speed as-is on an old 500MHz testing computer I built out of pieces from year 2000. I don't think you'll have any troubles getting this to run well.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-18-05 02:19 PM, in F-Zero X -- Editor Project Link
Since games and 3D apps are typically very light on processing power, I went for the ease of Microsoft Visual Basic on this one. None of that .NET crap. .NET sucks. But VB, while it's considered child's play by the idiots who don't know anything about it, actually makes fairly effective EXEs when compiled.

However, unless I get some kinda copyright that is NOT the hiddeous condemned to the umpteenth power GNU GPL, I won't be releasing the source code. Take a look at the checklist. "Obtain a copyright" is in it for just such a purpose.

In either case, "Document findings" is also in the checklist. So even if the source code doesn't make it out to the public domain, everyone will know how I did it.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-19-05 05:18 PM, in Kawa's custom-made hex editor Link
Screenshots would be nice. As a rule of thumb, I don't download programs just to look at them.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-19-05 09:40 PM, in Kawa's custom-made hex editor Link
That's the kind of post that gets deleted in respectable forums.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-20-05 01:23 AM, in F-Zero X -- Editor Project Link
12/18/2005 19:50 CST
CIC-NUS-6106 CRC calculator incorporated into project



A wallpaper for youse to hold you over while I finish up the texture loader:

Thumbnail. Click for larger version



(edited by Guy Perfect on 10-01-06 10:44 PM)
(edited by Guy Perfect on 10-01-06 10:44 PM)
(edited by Guy Perfect on 10-01-06 10:45 PM)
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-21-05 05:51 PM, in F-Zero X -- Editor Project Link
12/21/2005 15:32
Texture Loader completed.



No no. I do in fact mean copyright. What good is making up my own license agreement if there's no way to enforce it? With a copyright, however, somone won't be able to take my code and call it theirs lest they be prosecuted.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-21-05 06:46 PM, in F-Zero X -- Editor Project Link
There is a Rainbow Road in F-Zero X. That wallpaper just shows some of it decoded.

Oh, and Sukasa... I didn't explicitly say VB6. I might end up compiling it in VB4 just to spite you. (-:


(edited by BGNG on 12-22-05 01:06 AM)
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-22-05 12:26 AM, in N64 Pointer Referencing Link
Let's pretend I'm dealing with the North American version of F-Zero X and let's also pretend that I'm looking for a program pointer somewhere in the ROM that points to offset 2AD1E0.

Let's pretend also that the offset in question is the start of the track data and is not mentioned in the ROM as bytes. While there is one instance of 002AD1E0, nothing happens when it's changed.

802AD1E0 doesn't even show up, E0D12A doesn't find anything useful, etc.

So, um... Help? Any opcodes or what-not I could be searching for instead?
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-22-05 04:03 PM, in General Super Mario 64 hacking / TT64 Progress thread Link
MIO0 is the compression format used by Super Mario 64. It's an implementation of LZ77. All of the levels in the game are compressed with MIO0. Within the decompressed files, however, changing certain values will change which objects they represent.

In order to do this, you'll need to be able to extract a chunk of a ROM, decompress MIO0, change the byte values, recompress MIO0, and insert the new chunk into the ROM. If you can't do each of those, you won't be able to hack the game in this manner.
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-23-05 01:56 AM, in N64 Pointer Referencing Link
A VERY peculiar bit of information.

In the North American ROM at offset 000DFC28, there is data displaying the value 80119550. That is the pointer to the first byte of course description text (i.e., the "FIGURE EIGHT" of Mute City 1). The only thing is, the actual ROM offset where that text is located is 000DFCB0.

When changed, it works exactly as if 80119550 truely WAS 000DFCB0. This works for all 24 courses, as this is a pointer table.

But how the heck is this possible? How can the value 80119550 actually represent 000DFCB0?
Guy Perfect









Since: 11-18-05

Last post: 6291 days
Last view: 6290 days
Posted on 12-23-05 02:39 AM, in Legend of Zelda Ocarina of Time ROM Files Link
Most textures are encoded with the Zelda-rific compression algorithm Yaz0, which is like the MIO0 used in Super Mario 64 and F-Zero X, except that it deals with 16-bit values instead of 8-bit values.

In order to edit the textures and, most likely, the level data, you'll need to get something that can extract a segment of the ROM, a Yaz0 decompresser, a binary file editor (aka Hex Editor), a Yaz0 compressor, and something to insert the new data back into the ROM.

You'll also likely need a CRC recalculator. Some of the data is probably in the protected first megabyte of the ROM.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Acmlm's Board - I3 Archive - - Posts by Guy Perfect


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.084 seconds; used 442.19 kB (max 564.57 kB)