Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - NES Metroid - AutoMap hack released | |
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Parasyte

Bullet Bill
Level: 35

Posts: 56/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 06-11-04 08:57 PM Link | Quote
Some of you may remember the Metroid AutoMap hack I was working on some time last year... Well, I've finished it and decided now was a good time to release.

First, the complimentary screenshot:


The funny looking square under the energy display is the AutoMap doing it's job. The palette and tiles used to display the AutoMap are fully customizable. Assembly source code for the AutoMap routine is included. (Just make changes to tile indexes or palette and reassemble!)

List of features:
* Displays an auto-scrolling map in realtime, similar to Super Metroid.
* Works with almost every Metroid hack.
* Complete, commented assembly source code is included, making the hack 100% customizable.


If any of you Metroid hackers want to use the AutoMap in your own hack, go for it! Read the included readme for more details.

DOWNLOAD: http://parasyte.panicus.org/projects/met-map/met-map.zip
The Kins

Kodondo
Level: 38

Posts: 146/595
EXP: 354733
For next: 15714

Since: 03-15-04
From: Melbourne, VIC, Australia

Since last post: 2 days
Last activity: 9 hours
Posted on 06-11-04 10:00 PM Link | Quote
Wow, just wow! This is awesome!

PS: What happened to that Powerbomb code you were doing?
Parasyte

Bullet Bill
Level: 35

Posts: 57/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 06-11-04 11:09 PM Link | Quote
It's still in my hack. The code for the powerbomb is about completed, except for removing the "bombable" blocks.

While on the subject of my hack, here are the latest screenshots:


#2 ...



The first screenshot was just a standard edit, nothing special there. The second screenshot is pretty cool. It's using a "raster bar" effect that I created to test MMC3 IRQs. (The original Metroid runs on the MMC1 mapper. MMC1 is very basic, and doesn't contain much other than ROM switching capabilities. For my hack, I've been converting the game from MMC1 with CHR-RAM to MMC3 with CHR-ROM. The MMC3 allows me to do cool things like the raster effect -- where I change the background color every two scanlines. It was a rather simple task, so that's the first thing I've done with the MMC3 IRQ. Other uses (later) will include a Super Metroid-type status bar. Whew, this was a long sub-note!)

I also still have the status bar mockup I made last year, which I plan to use as a guide for the real thing. Everything in the screenshot is aligned to NES Name Table standards, and I think the graphics turned out rather well. Here is the mockup for reference:



Finally, if anyone wants the powerbomb video, I still have it as well. It's been hosted on DES for as long as I can remember: http://www.dragoneyestudios.net/hosted/parasyte/MetPBomb.avi
Keitaro

Iron Knuckle
ウラシマ ケイタロウ
Level: 54

Posts: 439/1342
EXP: 1201569
For next: 32301

Since: 03-15-04
From: Hinata, Japan

Since last post: 2 days
Last activity: 2 days
Posted on 06-12-04 12:18 AM Link | Quote
I'm normally not really into Metroid hacks, but DAMN. This makes me want to play that hack, you look like you've put alot of hard work into it and that's great to see in a hack. I can't wait for this
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 16/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 06-12-04 03:20 AM Link | Quote
Wow Parasyte! That's really awesome what you did

I had the idea once of doing some asm hack and get the whole map to be displayed when you
hit pause. Maybe you could add that too? It shouldn't be too hard.

My only really usefull and working asm hack in Metroid is a patch that enables just about
any blocks to be destroyed. There is some limitations and glitches, you cannot use it in
Tourian. Also bombing doesn't affect the blocks under Samus, unless they were destroyable
in the original, and when the blocks reappear they have the wrong graphics.




You can get an IPS patch here:

http://membres.lycos.fr/nes3d/METROID_ALL_BLOCKS.IPS

Also while we're at it, I started a doc about the way item location data is stored.
I had to figure out these by myself for Metroid Cubed, since it was not documented,
and it's not obvious in the Metroid or MetEdit source codes.

The doc is there:
http://membres.lycos.fr/nes3d/MetroidItemData.txt

Continue your great work Parasyte


(edited by VL-Tone on 06-13-04 12:01 AM)
Parasyte

Bullet Bill
Level: 35

Posts: 59/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 06-12-04 04:03 AM Link | Quote
A pause screen showing the map, eh...
The biggest problem may be lack of free space in the hard-wired PRG bank. The AutoMap uses 138 bytes of the 192 bytes available in that area. I tend to doubt that a complete map display routine could be created within 54 bytes. But, that is plenty of space to issue a bank swap command if you can find a bit of free space in another bank. It would just be a bit difficult to use both hacks together.
The next problem is that the entire world is created using 32x32 rooms. Assuming that the outer-most rooms will be blank, (as they should) that can be limited to 30x30 tiles to display the entire map. That will just barely fit on an NES screen. (32x30 tiles/256x240 pixels) But! On an NTSC NES, the upper 8 scanlines, as well as the lower 8 scanlines of the screen cannot be seen. Basically, that means you're limited to 32x28 tiles on any NTSC TV. (Note that some emulators will allow you to view all 240 scanlines, but not all. And anyone lucky enough to try it on a real NTSC NES will be in for an unpleasant surprise!)

So uhh, I guess the only real option would be having the user scroll the map while paused. I don't see any way that a routine like that will fit into 192 bytes. That's just really pushing it. Even if it heavily relies on code which already exists in the ROM, it would still be quite a feat to pull off. In other words, that hack would be a lot of work. You would have to be familiar with MMC1 (for the bank swapping) as well as using the PPU properly.
Dude Man

Koopa
Level: 18

Posts: 4/116
EXP: 29288
For next: 609

Since: 05-02-04
From: Wareham

Since last post: 1 day
Last activity: 7 hours
Posted on 06-12-04 06:32 AM Link | Quote


This sounds really cool. but one question. How exactly do you hook it up, do you patch it too a normal patch then edit, or can it be installed on any Metroid Hack in the process of being crafted?
Parasyte

Bullet Bill
Level: 35

Posts: 62/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 06-12-04 06:49 AM Link | Quote
The patch can be applied to any Metroid hack with just a few exceptions: The ROM must not be expanded, and the area used for the routine must not already be used by the hack. So whether the hack is just getting started, or is already complete, apply the patch and it should work fine. It's only the *really* advanced hacks you will have to be careful about. (Probably aren't any of those around, yet)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 17/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 06-12-04 07:58 AM Link | Quote
I forgot about the map size limitation. My first idea was simply to fetch the bytes from the 32x32
map into the name table (with some filter). But yeah I then realised it wouldn't fit on the screen.

I have been thinking about showing only the current area.
This could be achieved by having 1-bit masks (that would take 128 bytes) inserted in each area bank.
An X Y offset would also be stored for each area so the area map is centered.

Anyway it was just a thought and your mini-map is cool enough for me

The ultimate Metroid asm hack ever imho would be a spider-ball... I know it would be very hard
to pull this one up. A jump ball and space jump could be easier though.


Parasyte

Bullet Bill
Level: 35

Posts: 63/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 06-12-04 08:49 AM Link | Quote
The bit-masking idea isn't too bad. I actually had the same exact thought for creating a "visited room" hack, which would allow the game to keep track of where Samus has been, and where she still needs to go.
But, there could still be some problems with scrolling issues, even if only displaying the current area. For example, the default Brinstar map spans the entire 30-room length of the world. It's not unlikely that a hack may end up with an area that spens the entire 30-room height of the world. That would require scrolling, again.
Then there's alsways the thing about rebuilding the bitmasks every time you change the world layout.

As for the special item hacks ... I know there is a GameGenie code that allows you to actually space jump. It would only be a trivial matter of hard-coding it and/or adding checks to ensure the "space jump" item has been collected. (And maybe 'bug fixing' it) For the spiderball, you would mostly be dealing with bypassing all of the gravity routines. The game already has code to "lock" certain enemies onto walls. I don't see why that could not be edited to do the same to Samus.
Now, a few more difficult ones would be wall-jumping and homing missiles. ;D
Xkeeper
The required libraries have not been defined.
Level: NAN

Posts: -4150/-863
EXP: NAN
For next: 0

Since: 03-15-04

Since last post: 2 hours
Last activity: -753366 sec.
Posted on 06-12-04 09:14 AM Link | Quote
Originally posted by Parasyte

I saw that and went

I swear, I haven't seen something that looks that good on NES before. The word "RUINS" looks like it came out of the SNES or some 3D game

Very nice
Jigglysaint

Red Cheep-cheep
Level: 24

Posts: 29/215
EXP: 76907
For next: 1218

Since: 03-17-04

Since last post: 7 days
Last activity: 3 days
Posted on 06-12-04 09:35 AM Link | Quote
Homing missles would be cool. So would lock blocks

Seriously, good work! Too bad about the large map, but I guess that just having the mini map is good enough.

Perhaps another suggestion could be to have an object that when passed over, would switch between horizontal and vertical movement. It would be 2 strips that cover the entire length and width of the room, and basically act like doors, except it doesn't actually scroll you anywhere, only lock/unlocks the screen. Good for having secret passages in odd places. Also cool would be floor/celing doors, that all they do is just act like a room transition, nothing else(if I remember, a certain door object has a horizontal/horizontal transition).

Also, power bomb doors, could just be the modified 10 missle door.
Geiger

Buster Beetle
Level: 34

Posts: 72/460
EXP: 241080
For next: 12571

Since: 03-15-04
From: Indianapolis, IN, USA

Since last post: 6 hours
Last activity: 6 hours
Posted on 06-12-04 09:56 AM Link | Quote
Originally posted by Jigglysaint
if I remember, a certain door object has a horizontal/horizontal transition


Yeah, there is a sand pit room somewhere, that was annoyingly reproduced in Zero Mission.

---Evil Peer
Parasyte

Bullet Bill
Level: 35

Posts: 65/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 06-12-04 06:36 PM Link | Quote
Originally posted by Jigglysaint
Perhaps another suggestion could be to have an object that when passed over, would switch between horizontal and vertical movement. It would be 2 strips that cover the entire length and width of the room, and basically act like doors, except it doesn't actually scroll you anywhere, only lock/unlocks the screen. Good for having secret passages in odd places. Also cool would be floor/celing doors, that all they do is just act like a room transition, nothing else(if I remember, a certain door object has a horizontal/horizontal transition).


I intend to remove the scroll limitations altogether in favor of 8-way scrolling. I have a massive rewrite of the scroll system to do anyway, thanks to the status bar. So while I'm rewriting the scroll engine to accomodate the status bar, I'll also be gettnig it to scroll in any direction with no transitional periods.
Floor and ceiling doors would be an improvement, yes. But that would also require Samus to shoot downward. (Well, it would not require it, doors in the floor could be 'unlockable' once you aquire bombs, for example. But shooting downward has other advantages which make it a must, anyway!)

And power bomb doors ... why replace 10-missile doors with them? Just create a new door type!
Jigglysaint

Red Cheep-cheep
Level: 24

Posts: 30/215
EXP: 76907
For next: 1218

Since: 03-17-04

Since last post: 7 days
Last activity: 3 days
Posted on 06-13-04 01:26 AM Link | Quote
Originally posted by Evil Peer
Originally posted by Jigglysaint
if I remember, a certain door object has a horizontal/horizontal transition


Yeah, there is a sand pit room somewhere, that was annoyingly reproduced in Zero Mission.

---Evil Peer


Wait, what sand pit?

I just suggested using the 10 missle door since I figured you could take a page from the developers and cut some corners.

What would also be cool would be one item that's unique to each level, like a gravity suit, varia, or somthing cool.
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 339/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 06-13-04 03:04 AM Link | Quote
Wow Parasyte this is awesome and I really mean it. Now go get a job! (j/k)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 18/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 06-13-04 08:34 AM Link | Quote
Hmmm a sand pit room? In Metroid 1? I know every room by heart in Metroid,
and I never seen a sand pit room...

Thank you so much Parasyte for giving the source code with your hack.
it singlehandledly made me want to do my first "real" ASM hack.

I hope you didn't have a secret project involving wall-jumping in Metroid because

------->I worked out a way to implement wall-jumping in Metroid!!

It has a few quirks, but it's surprisingly good (at least for me).



Here is the IPS patch to activate wall-jumping in Metroid:
http://pages.infinit.net/voxel/MET-WJ.IPS

and here is the source code:
http://pages.infinit.net/voxel/met-wj.asm

It uses 26 bytes, and could be shorter I guess.

This patch cannot be used at the same time as the auto-map patch (sorry! I'll work this out).

Note to Parasyte, I used your source code for these experiments, so the base
address is the same, If I ever publish this officially, I'll make sure
it doesn't overwrite the auto-map code. Could you suggest me another base
address?

Oh one last thing, with a multi-direction scroll, how will you deal with lava?
Lava works only in horizontal rooms, and it works by checking if Samus is
lower than the bottom two blocks height.



(edited by VL-Tone on 06-12-04 11:59 PM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 967/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 06-13-04 03:29 PM Link | Quote
Regarding the map size: Perhaps you could use 4x4 tiles? You'd have 15 different tiles:

xx ox xo xx xx oo ox ox xo xo oo oo ox xo oo
xx xx xx ox xo xx ox xo ox xo ox xo oo oo oo

Where x is a black square and o is a white square. You check one room, the room beside it, below it, and diagonal from it, and choose a tile that represents the status of each. Essentially, you'd shrink the displayed map by 1/4 (though you'd need almost 8x as many tiles).
Parasyte

Bullet Bill
Level: 35

Posts: 71/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 06-13-04 11:17 PM Link | Quote
VL-Tone, I had a huge reply written for you last night, but my power went out before I was finished writing it. Blah!
Basically, I was explaining how that wall jump code should be improved by checking a lot more variables, and not slowing the decent any. But I suppose it's a good start. (I would never use it in a hack, personally...)

HyperHacker, that would not only require more tiles, but also more code to handle it properly. But would a 16x16 tile map be big enough? Sounds a bit small.


EDIT: I've rewritten all of the Wall Jump code I had before the power went out. (I'd say this version is much better, anyway.) It assembles to just 38 bytes, and makes it not-so-simple to wall jump. You must be near a wall, holding the direction away from it, in a spin jump, at the peak of the jump in a slow decent, and when you press A it will perform a wall jump.
If anyone needs a NEStopia movie file, I can create one to show you how wall jumps are done with the hack. The range can be changed so you're given a larger window of oppertunity to perform the jump, if you feel it's too tight. But I personally like it the way it is. It's not too difficult, and not too easy.
Download: http://parasyte.panicus.org/projects/met-map/walljump.zip (Again, source code is included.)

P.S. This routine can be modified very easily for space jump.


(edited by Parasyte on 06-13-04 03:53 PM)
interdpth

Rex
Level: 36

Posts: 63/527
EXP: 294398
For next: 13712

Since: 03-20-04

Since last post: 10 days
Last activity: 31 days
Posted on 06-14-04 12:16 AM Link | Quote
Para is god.
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - NES Metroid - AutoMap hack released | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.018 seconds.