aprofessionalpirate / nsasmo

An attempt to make the old DOS game 'The Amazing Spider-Man' capable of being played online
2 stars 1 forks source link

I want to edit levels #1

Open erezwanderman opened 5 years ago

erezwanderman commented 5 years ago

Hey, I see you're making something cool here. I wonder if you can help me. I want to edit the levels of the game. They are stored in ROOMS.SPL, but the file is compressed. Do you know how can I decompress/edit it?

aprofessionalpirate commented 5 years ago

Hey there @erezwanderman thanks for stopping by! I haven't actually looked at the files only what is loaded into memory so I wouldn't have a clue unfortunately. There was a sprite editor which does not seem to be available anymore but I found the tech notes on web archive that may possibly help you out, though it only contains details about the sprites not the levels: https://web.archive.org/web/20021229215932/http://www.bripro.com/spidey/techdocs.shtml

erezwanderman commented 5 years ago

Hi @aprofessionalpirate. The info there really seems not relevant, as it is talking about the graphics and they are seemingly not compressed. I know that the levels are stored in the file ROOMS.SPL and I think that BACKS.SPL has the background layer. I thought about making a level editor but I can't figure it out. The exe is compressed with lzexe and can be decompressed, but I don't know if it helps for the files that I want.

BTW, what are you trying to do in this project?

aprofessionalpirate commented 5 years ago

Ah that's too bad, I documented a little bit about the on-screen graphics and collision data which you can see here: https://github.com/aprofessionalpirate/nsasmo/wiki/Memory-Searching But basically I just viewed the memory using Cheat Engine and poked around to see where things were located. You could possibly do the same and figure out how the decompressed level data is structured at least?

The project is about making the game psuedo-multiplayer. I'm sending a player's location data from one game and injecting that data into another player's game as a non-interactive enemy so you can see where other players are located in real time. Kinda like the Super Mario 64 multiplayer project if you've ever seen that but far less sophisticated.