Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,471,592
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-23-24 12:19 PM
Guest: Register | Login

Main - Posts by Dwedit

Pages: 1 2 3 4 5 6 7 8

Dwedit
Posted on 03-07-07 07:59 AM, in DOSbox 0.70 out Link | Quote | ID: 11682


Red Paratroopa
Level: 30

Posts: 1/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
The "buttonwrap=true" line is PURE EVIL. It kills support for Playstation 2 controllers connected by a USB adapter.

____________________

Dwedit
Posted on 03-07-07 08:39 AM, in Reason for two boards? Link | Quote | ID: 11690


Red Paratroopa
Level: 30

Posts: 2/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
I'm not familiar with all the crazy political things going on which would end up splitting Acmlm's board in two, but does it have anything to do with This Thread?


____________________

Dwedit
Posted on 03-07-07 08:36 PM, in Encryption/software decompression in GBA games Link | Quote | ID: 11840


Red Paratroopa
Level: 30

Posts: 3/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
LZSS decompression is actually about 50% the speed of straight memcopy, it's the fastest way to decompress data.

____________________

Dwedit
Posted on 03-07-07 10:23 PM, in Rare Games Link | Quote | ID: 11865


Red Paratroopa
Level: 30

Posts: 4/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
The only remotely rare game I have for the NES is the Miracle Piano teaching system, and that's only rated a B on that one guy's list.
Unless you count games made by Rare

____________________

Dwedit
Posted on 03-10-07 05:55 AM, in Many gaming moments... Link | Quote | ID: 13200


Red Paratroopa
Level: 30

Posts: 5/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
For me, the Most Scared portion was "Super Solvers Midnight Rescue". C'mon, I was a little kid then...

____________________

Dwedit
Posted on 03-10-07 05:56 AM, in Emulation vs. the real deal (rev. 2 of 03-10-07 05:57 AM) Link | Quote | ID: 13202


Red Paratroopa
Level: 30

Posts: 6/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
I've noticed that Mike Tyson's Punch Out is far easier on the real thing, since it does not have any lag between the screen and your actions. I keep getting knocked out by Tyson on an emulator, but can often beat him on the real console.

____________________

Dwedit
Posted on 03-10-07 06:10 AM, in Virtual Console hackin' Link | Quote | ID: 13205


Red Paratroopa
Level: 30

Posts: 7/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
Posted by Keitaro
Posted by Raccoon Sam
I guess they have a some kind of a compression or something.
I remember trying to open Classic NES: SMB in Tile Molester. Got nothing.
I almost want to say the reason for this is because those games use almost a filesystem of sorts. If I recall correctly, the ROM contained both the NES rom, and PocketNES with modifyed sound code (...way to go Nintendo?) within it. I think to edit the NES rom within it you would need to somehow de-attach the file. Of course, on the subject of the VC games I HIGHLY doubt that they would be bundling the emulator with the game, but considering that they more than likely don't have them built in, I can't see any other way. Perhaps its done similarly to how these GBA games were done. Dunno.


Nintendo did not use PocketNES for their Classic NES series games, but other companies did. Atlus, Hudson Soft, and Jaleco have sold PocketNES attached to their roms.

____________________

Dwedit
Posted on 03-10-07 09:28 PM, in Reason for two boards? Link | Quote | ID: 13499


Red Paratroopa
Level: 30

Posts: 8/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
Now that the other board appears to no longer exist, can it get moved to the old address? Whenever I see a website on no-ip.org, I always assume it will go bye-bye in a few weeks.

____________________

Dwedit
Posted on 03-11-07 01:44 AM, in Reason for two boards? Link | Quote | ID: 13602


Red Paratroopa
Level: 30

Posts: 9/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
Does Ztnet/Emulationworld/whatever still host acmlm.org?

____________________

Dwedit
Posted on 03-16-07 07:58 AM, in Reason for two boards? Link | Quote | ID: 15693


Red Paratroopa
Level: 30

Posts: 10/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
You want Valid? Use Punbb. The most ridiculously valid XHTML code I've ever seen emitted by a message board script. It even messes up if you edit the .php files to emit a <br> tag. Needs to be a <br /> tag, or else it won't display the linebreak.

I use it on my forum. Nobody posts there, it's so lonely...

____________________

Dwedit
Posted on 03-18-07 08:38 AM, in Little flash game I made Link | Quote | ID: 16483


Red Paratroopa
Level: 30

Posts: 11/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
http://www.newgrounds.com/portal/view/369113
It's IceClimb, a TI83 game I made way back in 2000 ported to Flash.

A platform/puzzle game, and people tell me it's insanely hard.

____________________

Dwedit
Posted on 03-19-07 04:20 AM, in Little flash game I made Link | Quote | ID: 16823


Red Paratroopa
Level: 30

Posts: 12/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
I sincerely believe that Newgrounds is the living embodiment of Mike Judge's "Idiocracy".

____________________

Dwedit
Posted on 03-20-07 08:57 PM, in Little flash game I made Link | Quote | ID: 17347


Red Paratroopa
Level: 30

Posts: 13/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
Blood and swearing nothing...
They like it when you take a bunch of Hentai images from another site, then add some quiz questions and broken actionscripting.

____________________

Dwedit
Posted on 03-21-07 03:31 AM, in Nesticle desen't eork? Link | Quote | ID: 17557


Red Paratroopa
Level: 30

Posts: 14/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
On old computers, Loopynes is the best, followed by Famtasia.

____________________

Dwedit
Posted on 03-21-07 07:33 AM, in Nesticle desen't eork? Link | Quote | ID: 17622


Red Paratroopa
Level: 30

Posts: 15/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
It would really suck if not only did you have an old PC, you had an old PC loaded with spyware. Loopynes is a very fast program, the only possible reason it wouldn't be fast is other software hogging the CPU.

____________________

Dwedit
Posted on 03-22-07 12:42 AM, in Little flash game I made Link | Quote | ID: 17830


Red Paratroopa
Level: 30

Posts: 16/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
Dude, my Bubble Bobble 83 game is 100 times better than Iceclimb... Odd that I stop developing for calculators then people start taking interest in Iceclimb...

____________________

Dwedit
Posted on 03-22-07 07:10 PM, in Anyone play Magic: The Gathering? Link | Quote | ID: 18055


Red Paratroopa
Level: 30

Posts: 17/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
I play Magic extensively... unfortunately the only version of Magic I play is the Microprose version.

____________________

Dwedit
Posted on 03-25-07 12:31 AM, in Old Windows laptop gaming Link | Quote | ID: 18859


Red Paratroopa
Level: 30

Posts: 18/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
Ultima 6 baby!

____________________

Dwedit
Posted on 03-25-07 09:20 PM, in What screen resolution do you use? Link | Quote | ID: 19160


Red Paratroopa
Level: 30

Posts: 19/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
I use 1400x1050 when not plugged into a [1024x768] monitor. Does nobody else have a screen with that resolution?

____________________

Dwedit
Posted on 03-26-07 10:45 AM, in Things that make you think "WHY???" Link | Quote | ID: 19418


Red Paratroopa
Level: 30

Posts: 20/162
EXP: 163102
Next: 2767

Since: 03-07-07
From: Chicago

Last post: 3515 days
Last view: 1610 days
Going back to the spirit of the original thread...
A while ago I disassembled a chunk of code from Dragon Warrior 3. The code is responsible for checking which tiles are underneath the four allies, testing if the tile number is flagged as a swamp or barrier tile, and calling the routine to deal damage to the player. Normally it works fine, but it is possible to get this code to fail in a spectacular way. This happens to be a huge memory corruption bug targeted at the area around your stats.

The way it works is that it iterates over each party member, looks at the tile under the player (which happens to be nicely stored somewhere), and tests if that tile number has the relevant tile-flags set. Because there may be a dead party member, and dead party members go to the back of the walking formation, it keeps a small table to see who's still alive. For example, if the second party member was dead, and the other 3 were alive, the table would contain [0,2,3]. The game also keeps track of the number of living party members, and uses that number to terminate the loop, so it wouldn't check a fourth member if there were only 3 living members.

The code is structured pretty much like this:

i=0;
do
{
t = tile_under_player[ i ]
p = living_player[ i ]
if t is a swamp tile, do 2 damage to player #p
if t is a barrier tile, do 15 damage to player #p
i++
} while (i != living_members)


There's an item in DW3 called the Dream Ruby. Normally you just collect it, then take it to the elf queen, and get the Wake-up Powder. But if you use the Dream Ruby as an item, it paralyzes the character who uses it. This paralysis is slightly bugged: It doesn't check if the entire party is paralyzed or dead after you use it. Then there are situations in the game where a member of your party must split from the rest, especially the "fortune telling" house in Assaram. Usually the lead character of the party splits from the group, leaving the allies behind. But if the lead party member is paralyzed or dead, the next character splits ahead instead. Now the kicker: if the lead party member is dead, and the rest of the party is either dead or paralyzed, you will control the leading dead party separate from the other allies.

So now we have a party of one dead member. Here's the swamp-tile-checking routine's fatal flaw: It increments the character number, then tests if it EQUALS the number of living party members or not. So we have character #1, and there are 0 living party members. Now we have a loop overflowing past the limit, until it repeats 256 times. Suddenly, it's reading way out of bounds for the tile_under_player table and living_party table. Now it reads some random bytes from the zero page and interprets them as tiles underneath the player, then picks another random value from the zero page as the player to deal damage to.

So what happens when it deals 2 damage to a player number out of bounds? The players stats are stored in an interleaved-like format. Player 1's HP is followed by Player 2's HP, then Player 3's HP and so-on. When it deals 2 damage to a player number greater than 3, it will modify some other stat. For example it will decrease a player's MAX HP by 2, or maybe their strength, or even their Name or Inventory contents. If the 16-bit value at the random address goes down to zero, it is set to a minimum of zero, and a message is displayed indicating that the player has died.

Now, it will do this many many times each step you take. It's looking through the entire zero page for any numbers which happen to be a swamp tile number after ANDing with $1F. Then it's taking a corresponding byte as a character number, and decreasing some random stat by 2. Then it's going to display that a character has died about 10 times each step you take.

All because the programmer never bothered to properly use a less than operator instead of a not equals operator (BVC vs BNE instruction).

I made a video demonstrating the bug on Youtube. http://www.youtube.com/watch?v=38bEtt6Bxv8
The video shows some item being replaced with the Final Key. Also the max HP of some character goes down to zero.

____________________
Pages: 1 2 3 4 5 6 7 8


Main - Posts by Dwedit

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

Page rendered in 0.262 seconds. (329KB of memory used)
MySQL - queries: 138, rows: 170/170, time: 0.239 seconds.