Project Let's make the best ever River City Ransom ROM hack (Read 1120 times)

  • Avatar of denzquix
  • PipPipPipPipPip
  • Group: Member
  • Joined: Aug 22, 2012
  • Posts: 630
so for a while now I have been pokin around in the data for the 1989 NES game River City Ransom (a.k.a. Street Gangs, a.k.a. Downtown: Hot-Blooded Story)
 
 

 
 
I'd like to get saltworlders involved in making an elaborate ROM hack, going well beyond the usual "text & tiles" type hack, to make something more like a different game on the same engine...
 
I made this colorful map of what I understand of the ROM data so far: http://saltquix.github.io/barf/map.html still workin on it
 
here's a rough plan... subject to interest from you guys of course
  • I continue to investigate where things are in the ROM and also the data format involved, & add to the page above
  • at this stage any truly intrepid wonks are welcome to crack open a hex editor to manually try to make use of this knowledge... but this isn't recommended....
  • I develop some simple command-line tools which can pull out certain bits of info in a readable text-based format, then push back once you've modified it in your favourite text editor
  • so if you're interested in getting involved at that stage you'll need to be happy to work with doing stuff with a command line and version control (github). i'm happy to help as much as I can though.
  • next I'd start work on visual editors (like the actual geometry of a location, where raised surfaces and walls and pits and exit zones go)
  • finally, i'll attempt to consolidate all the separate little tools into a nicely wrapped-up single GUI app
 
I don't wanna dictate a theme for the hack...I'd rather let things emerge and percolate as they will, driven by experimentation
 
i think this could be cool. thoughts, comments, suggestions welcome....
 
(here's a useless bit of tech triv for ya: the background graphics for locations that are 3 or 4 screens wide are stored completely different to backgrounds for locations only 1 or 2 screens wide... the data is in a different format, even physically they are stored on a separate memory chip within the cartridge... #wow #whoa  :fogetbatshit:​ )
Last Edit: May 27, 2013, 11:13:13 pm by denzquix
  • Avatar of Vellfire
  • TV people want to leave
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Premium Member
  • Joined: Feb 13, 2004
  • Posts: 9602
idk what i could contribute but i love this idea
I love this hobby - stealing your mother's diary
BRRING! BRRING!
Hello!  It's me, Vellfire!  FOLLOW ME ON TWITTER! ... Bye!  CLICK!  @gidgetnomates
  • Avatar of JMickle
  • I gots a lego!
  • PipPipPipPipPipPipPip
  • Group: Premium Member
  • Joined: Feb 4, 2007
  • Posts: 1922
i will definitely help out! i'm not that Smart though so i'll probably have to wait for the visual editors
www.jmickle.com
  • Avatar of The Dude
  • Artist, novelist, gamer, and friend.
  • PipPipPipPipPipPipPip
  • Group: Premium Member
  • Joined: May 29, 2003
  • Posts: 1798
This is absolutely incredible. If you need any character concept art, hit me up. I'm rarely on sw forums, but I check my email frequently.
[email protected]

Rivercity Ransom is one of my favourite games, it would rock hard to be on board the design team for this.
I'll swoop in and drop some examples of my latest works when I have two seconds to post things properly online.
  • Avatar of denzquix
  • PipPipPipPipPip
  • Group: Member
  • Joined: Aug 22, 2012
  • Posts: 630
ohh thanks guys!! at this stage enthusiasm & interest is precious lifeblood....
 
 
 
ok so I got my first simple tool working!!
 
it's written in python so you need python stuff installed... i have version 2,7 i think
 
anyway you can download what I got so far as a zip here: https://github.com/saltquix/barf/archive/master.zip
 
  • extract all the files somewhere & click barf_text.py
  •  if you got python set up OK, you should get a file requester to select a river city ransom ROM (not included!!)
  • next it'll ask you to choose an output folder
  • several .txt files will get dumped in there & the app will close
  • these files are just lists of bits of text extracted from the game.. each line is numbered, just ignore the numbers for now
  • edit some of the files a bit in a text editor like notepad, then run barf_text.py again
  • choose the same ROMfile and folder. this time it notices that the folder already contains the files & asks if you want to import these back into the ROM rather than export again
  • if you click Yes... and nothing went wrong... your modified ROM is ready to try!!
  • Avatar of sambr
  • Pip
  • Group: Member
  • Joined: Aug 7, 2012
  • Posts: 193
this is fuckin awesome woah. this program is really cool, denz!
  • Avatar of bonzi_buddy
  • Kaiser
  • PipPipPipPipPipPipPip
  • Group: Premium Member
  • Joined: Apr 15, 2005
  • Posts: 1998
denzcool, you ever played/hacked your slimy hands into Downtown Special?? that games a fucking freak/mutant (well lotsa rcr games are, eg. the fucking insane DIY sports game, you can literally HEAR the wooden skeleton/beams of game system SNARLING from strain), its a helluva system + bizarre cool game to search/dip into.. probably more so than RCR
Last Edit: May 29, 2013, 06:04:42 pm by bonzi_buddy
  • Avatar of denzquix
  • PipPipPipPipPip
  • Group: Member
  • Joined: Aug 22, 2012
  • Posts: 630
just added a new script! d/l from the same place: https://github.com/saltquix/barf/archive/master.zip

it is called barf_places.py and works very similar to the other one... exports/imports one file called places.txt. for every room in the game it has a buncha numbers you can edit, like the music track number (there are some unused ones i think) & where you get reincarnated when you die
 
denzcool, you ever played/hacked your slimy hands into Downtown Special?? that games a fucking freak/mutant (well lotsa rcr games are, eg. the fucking insane DIY sports game, you can literally HEAR the wooden skeleton/beams of game system SNARLING from strain), its a helluva system + bizarre cool game to search/dip into.. probably more so than RCR
ohh yeah i have played that one!! not for ages, but... it's amazing, you're right..

i do wanna stick to r.c.r. for now BUT i will keep those other ones in mind
  • Avatar of denzquix
  • PipPipPipPipPip
  • Group: Member
  • Joined: Aug 22, 2012
  • Posts: 630
this is not the hack, but i made a haunted rom: https://www.dropbox.com/s/s5e4cqjde6ggred/haunted_rcr.nes

li'l experiment.. has some stuff where i changed some stuff without understanding it soo i havent got an editor for it
  • Avatar of Evangel
  • brown priyde yea mayne
  • PipPipPipPipPipPipPip
  • Group: Member
  • Joined: Nov 19, 2002
  • Posts: 1621
I love RCR, never could beat it. The most striking thing about this game is THERE IS SUCH A LARGE SELECTION OF FOOD ITEMS. So awesome that you can go to a diner, sushi bar, ice cream shop, supplements shop, stir fry joint, and each has an entirely unique menu, and the effects of the food subtly different. Pancakes give you like +20 health +1 defense whereas waffles give you +20 health +1 attack. There's definitely something going there, with potential for SaltW user custom shops, like Vellfire's Bento Bistro or JMickle's I don't really know what you eat.
 
The combat system is super zany, I think there's plenty of room for creativity there, even if you just re-sprite weapons and enemies. Depending on how customized the levels can be, I could easily imagine some Super Mario Bros. 2 type puzzles and levels, like carrying the key to the top of the stage while being chased by ghosts, giant radish pickups, parallel subterranean zones.
 
Graphics style is super simple and attractive for editting. I don't know if NES palette limitations would apply, would be nice to make it more colorful.
keep posting...
  • Avatar of denzquix
  • PipPipPipPipPip
  • Group: Member
  • Joined: Aug 22, 2012
  • Posts: 630
The most striking thing about this game is THERE IS SUCH A LARGE SELECTION OF FOOD ITEMS. So awesome that you can go to a diner, sushi bar, ice cream shop, supplements shop, stir fry joint, and each has an entirely unique menu, and the effects of the food subtly different. Pancakes give you like +20 health +1 defense whereas waffles give you +20 health +1 attack.
yes!! there's over 120 items you can buy... I got quite a bit of ROM info worked out about shopping & buyable items but not everything (examples of stuff I don't know yet: why some items you consume in-store and some you take away, how special abilities get associated with certain items...)
 
Depending on how customized the levels can be, I could easily imagine some Super Mario Bros. 2 type puzzles and levels, like carrying the key to the top of the stage while being chased by ghosts, giant radish pickups, parallel subterranean zones.
hm well i don't think making the screen scroll vertically rather than horizontally is within my hackin skills... other than that yeah i am certain we could do some pretty radical changes  :ghost: i've found a lot of the data (my ROM map is slowly filling up), it's just about getting usable editor(s) for it all...

thanks very much for your input evangel!! i'm glad other people can see the possibilities & are starting to think about em...
Last Edit: June 12, 2013, 11:35:36 am by denzquix
  • Avatar of EvilDemonCreature
  • i don't like change
  • PipPipPipPipPipPipPip
  • Group: Premium Member
  • Joined: Jul 5, 2002
  • Posts: 1453
I've never really tried reading or manipulating ROM data before, but if there is already a map to follow forming this quickly, then I am sure I could help out in programming various editors and such.
  • vice-chairman of marketing
  • Pip
  • Group: Member
  • Joined: Mar 9, 2013
  • Posts: 134
I love RCR, never could beat it. The most striking thing about this game is THERE IS SUCH A LARGE SELECTION OF FOOD ITEMS. So awesome that you can go to a diner, sushi bar, ice cream shop, supplements shop, stir fry joint, and each has an entirely unique menu, and the effects of the food subtly different. Pancakes give you like +20 health +1 defense whereas waffles give you +20 health +1 attack. There's definitely something going there, with potential for SaltW user custom shops, like Vellfire's Bento Bistro or JMickle's I don't really know what you eat.
 
i did not know that about the food. it's something i love about shenmue / yakuza (my quest in the latter became to find the most expensive whiskey and hear its description)
 
(egocentric not​ the game i put out last year has about 100 food items which all affect your physical health, mental health, food and exhaustion levels to varying (invisible) degrees, so it's something very close to my heart.
 
i'd like to be involved in some way, fellow travelers.
  • Avatar of Ragnar
  • Worthless Protoplasm
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Premium Member
  • Joined: Jun 15, 2002
  • Posts: 6536
um, why don't you link to your games in your sig or something, superflat?
http://djsaint-hubert.bandcamp.com/
 
  • vice-chairman of marketing
  • Pip
  • Group: Member
  • Joined: Mar 9, 2013
  • Posts: 134
I figure if you wanna find them, you will haha (superflatgames.com / lonesurvivor.co.uk are the main places though)
  • Avatar of KyleRXZero
  • Group: Member
  • Joined: Sep 23, 2013
  • Posts: 2
This is a very awesome project! Really love the tools you have made so far. This has inspired me to make my own River City hack as I've always been a fan of the game. My freetime is rather limited so hopefully I'll be able to finish it one day. I had a couple of questions for you denzquix if you had the time.
 
1) About the gang dialog found in npc_dialog.txt, specifically lines 58 thru 88. Example -> 86:{name}: "BARF!"
Off the top of your head, do you know if any of these lines are specific to any certain gangs? Or is it that any gang member in any gang will randomly say these any of these lines from 58 thru 88? This is probably something I can playtest and figure for myself, It's just with the random appearance of the gangs in the different areas; it may take a few playthroughs to figure out. I was hoping some would be gang or gang member specific so that I could give them dialog pertaining to them. If you don't know right off, no worries.
 
2) It looks like some things are commented out of places.txt. Like start_point and exits. Is this something that is not ready in the current build? These features interest me because it would be very cool to change the order of the locations. That seems like it would be a cool way to make the game more "new".
 
That's about all the questions I have at the moment. Again, thanks for making your Barf! tools. You da man denzquix. :)
  • Avatar of denzquix
  • PipPipPipPipPip
  • Group: Member
  • Joined: Aug 22, 2012
  • Posts: 630
This is a very awesome project! Really love the tools you have made so far. This has inspired me to make my own River City hack as I've always been a fan of the game. My freetime is rather limited so hopefully I'll be able to finish it one day. I had a couple of questions for you denzquix if you had the time.
sure... i apologize for not updating this project in a while, but i promise it is still alive & ongoing for the foreseeable future, i just get distracted by other things... all enthusiasm helps me focus though so thank you!!
 
1) About the gang dialog found in npc_dialog.txt, specifically lines 58 thru 88. Example -> 86:{name}: "BARF!"
Off the top of your head, do you know if any of these lines are specific to any certain gangs?
I know that, in the game, certain gangs do prefer certain phrases... I can't quite remember whether I found data relating to this or not though 
 
2) It looks like some things are commented out of places.txt. Like start_point and exits. Is this something that is not ready in the current build?
that's correct, commented-out things means I got as far as working out how to extract data but packing it back in is not always so easy....

exit zones and entry points are only part of the story, there is also the actual geometry of the raised areas and pits and stuff, I do know how to extract this data but making it visually editable is tricky....

(for graphical editors, after trying to work out which GUI toolkit to use, i'm leaning towards using a python toy web server that only serves your local machine, so you'd run a special script and then open a browser and go to localhost:5678 or something, which would connect to the app and it would start to serve HTML, javascript etc to communicate like a normal web site, but it's really just a local app... unusual way to do it but maybe the easiest/most flexible tbh)

(but I am also planning to export/import data in a format that the NES Screen Tool http://forums.nesdev.com/viewtopic.php?t=7237 can edit... maybe the web server thing will have an integrated version of the same functionality eventually though)
Last Edit: September 24, 2013, 12:25:40 pm by denzquix
  • Avatar of KyleRXZero
  • Group: Member
  • Joined: Sep 23, 2013
  • Posts: 2
Thanks for the info denzquix, much appreciated. I'm going to keep an eye on this thread. Your plans for this project are very exciting. :)
  • Avatar of theHissilent
  • Group: Member
  • Joined: Dec 18, 2013
  • Posts: 1
I have been wanting to build a browser based/ Javascript game built around the core of this game for years. Wondering if info from the ROM can be used to create stat model which can be used as part of a JS RPG. Any thoughts on this?
  • Avatar of denzquix
  • PipPipPipPipPip
  • Group: Member
  • Joined: Aug 22, 2012
  • Posts: 630
Well, the stat boosts you get from items in RCR are consistent & are catalogued at the RPG Classics shrine here: http://shrines.rpgclassics.com/nes/rcr/shopping.shtml

A shop-specific page will also explain the formula for "max power" increase.

And you can see the current stats in-game pretty easily by going to the stats screen from the pause menu

The stats that bosses have are a little trickier but I think it's possible to see them using data from the ROM