News:

11 March 2016 - Forum Rules

Main Menu

SimCity+ SNES Asking for help

Started by FireBrandWhip, May 30, 2022, 01:09:05 AM

Previous topic - Next topic

FireBrandWhip

I don't mean to be "that guy" and flood the forms with a zillion of the same post I actually meant to post this here and not in the Script & language board, ( I will delete that later or if an admin can do so...)

I started a project form you can find here:
https://www.romhacking.net/forum/index.php?topic=34930.0

So I've been working on the super Nintendo SimCity, practically *everybody* has aspired to these dreams, yet nobody has actually hacked this version of the game yet to this level.


Unfortunately, as genius (I hate to ask for help, however..)I have several dents in my head from an injury several decades ago so it takes me a little longer to grasp the starting concepts yet-- when I do, I master it quickly...

I was hoping somebody could help me figure out where the city park tile actually is. I'm talking about the city parks where they increased land value on trying to find the graphical tile so I can replace it with a hill tile I made giving the illusion of height on a flat overview map.

I described it in this form here:
https://www.romhacking.net/forum/index.php?topic=34935.0

Not that I'm expecting answers right away--"to be a quick fix" ...however like said before I hate asking for help I only do it when I get stuck or need to know something further or explain a bit better.

Anyway, this is a pretty good-complex project,yet very simple... especially since it is a very simple game from what I remember... Most of the complexity is how each individual tile correlates exponentially to other tiles around it-- not so particularly the overall zone tiles placed though those are part of the sub-exponent.

I DO plan on making some video tutorials on the subject once I have this mastered so that people don't have to go through the pitfalls I have to.

If anybody on this repository or as part of the DataCrystal( which we should have better documentation for SNES SimCity) would like to assist I would greatly appreciate it and so with the community and as well as the ROM hacking world!

:)

May 28, 2022, 12:43:49 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Here is what I require it is quite simple:

I need someone to help do the trace route debugging disassembly for how many large parks are the maximum (3 total) and show me how to expand it to 9.

Also there are 300 small Parks required to get to one large Park as a gift I want this changed to 100 an example of how to do this exactly.

Then I am adding a new park style...
Sandy Park (use the rubble graphics)... I need step by step of how to do this exactly to insert that into the random generator to decide whether it is a regular park or a tree Park and have a chance of Sandy Park.

I require somebody who can go through these steps and document what to do exactly of how to do this is what I need I've done trace route debugging before and I'm having troubles... If I can have the above examples done for me and documented of how to do exactly I could then figure out how to do everything else on my project list.

Thank you so much! 🥰

FireBrandWhip

Hey I'm still trying to figure this off in my spare time I'm getting kind of frustrated I can't pay you anything but if you can help me figure out that part of what I asked for in the previous post I will make it worth your while someday!

I've been busy with work so I can't do this as much as I'd like at some point I will be able to dedicate a lot more hours I've been busy doing the Chrono trigger temporal flux tutorial series which is coming along well unfortunately SimCity project might have to be on hold for a bit longer.

svambo

#2
Quote from: FireBrandWhip on May 30, 2022, 01:09:05 AMAlso there are 300 small Parks required to get to one large Park as a gift I want this changed to 100 an example of how to do this exactly.

Use a Hex-Editor and go to $01C2FB (in the US version). There you should find 2C 01 58 02 84 03. 

$012C = 300
$0258 = 600
$0384 = 900

Change this to 64 00 C8 00 2C 01 and you will need 100, 200, 300 small parks to get a large one.

If you want to get more than 3 large parks you will have to change the way it is coded. This is the routine in question:

$03/C2DD AD B7 0C    LDA $0CB7  [$03:0CB7]   
$03/C2E0 0A          ASL A                   
$03/C2E1 A8          TAY                     
$03/C2E2 AD 23 0E    LDA $0E23  [$03:0E23]   current small parks
$03/C2E5 D9 FB C2    CMP $C2FB,y[$03:C2FB]   compare with next goal (300,600,900)
$03/C2E8 90 10       BCC $10    [$C2FA]     
$03/C2EA EE B7 0C    INC $0CB7  [$03:0CB7]   allowed one more big parks
$03/C2ED A9 19 00    LDA #$0019             
$03/C2F0 8D 97 03    STA $0397  [$03:0397]   
$03/C2F3 A9 01 00    LDA #$0001             
$03/C2F6 8D 95 03    STA $0395  [$03:0395]   
$03/C2F9 68          PLA                     
$03/C2FA 60          RTS   

You can relocate the list of goals by changing the CMP $C2FB,y . At the end of the bank there are some free bytes. Create a new list with 9 goals there, add $FF $FF after the list and redirect the CMP onto that list - done!

Good luck with your project  :beer:

FireBrandWhip

Quote from: svambo on July 01, 2022, 08:42:18 AMUse a Hex-Editor and go to $01C2FB (in the US version). There you should find 2C 01 58 02 84 03. 

$012C = 300
$0258 = 600
$0384 = 900

Change this to 64 00 C8 00 2C 01 and you will need 100, 200, 300 small parks to get a large one.

If you want to get more than 3 large parks you will have to change the way it is coded. This is the routine in question:

$03/C2DD AD B7 0C    LDA $0CB7  [$03:0CB7]   
$03/C2E0 0A          ASL A                   
$03/C2E1 A8          TAY                     
$03/C2E2 AD 23 0E    LDA $0E23  [$03:0E23]   current small parks
$03/C2E5 D9 FB C2    CMP $C2FB,y[$03:C2FB]   compare with next goal (300,600,900)
$03/C2E8 90 10       BCC $10    [$C2FA]     
$03/C2EA EE B7 0C    INC $0CB7  [$03:0CB7]   allowed one more big parks
$03/C2ED A9 19 00    LDA #$0019             
$03/C2F0 8D 97 03    STA $0397  [$03:0397]   
$03/C2F3 A9 01 00    LDA #$0001             
$03/C2F6 8D 95 03    STA $0395  [$03:0395]   
$03/C2F9 68          PLA                     
$03/C2FA 60          RTS   

You can relocate the list of goals by changing the CMP $C2FB,y . At the end of the bank there are some free bytes. Create a new list with 9 goals there, add $FF $FF after the list and redirect the CMP onto that list - done!

Good luck with your project  :beer:

In-f******-credible...! this is exactly what I needed as a starting point thank you!

So .. $C2FB,y...

... Just expand this in a list that has nine instead and then update the integer_counter?
 (Ex: 100,200,300,400,500,600,700,800,900)


I don't mean to sound like I'm brain dead but I almost have it grasp if you could show me just a little bit more of what I would have to do in modifying this so that I can include that that would be so f****** much appreciated!

👍😈🙃🌈🥳



svambo

#4
lorom

; ------------------------------------------
; - 9 large Parks for 100 small parks each -
; ------------------------------------------

org $03C2E5

 CMP $FFE0,y


org $03FFE0

 db $64, $00, $C8, $00, $2C, $01, $90, $01, $F4, $01
 db $58, $02, $BC, $02, $20, $03, $84, $03, $FF, $FF

------------------------

Use XKAS and the code above to do the trick.

It's just a new list with 100-900 and FFFF to end it (well ... not really end it but you would need 65535 small parks for the tenth large one  ;D )
The list is at the end of the bank and the CMP is changed to use the new list instead of the old one.

Works with the US Rom. Haven't checked the other regions. Code-position may be different there.

FireBrandWhip

HELL YEAH!  :thumbsup:

Thank you so much, I will check this out later.

I've been busy getting my Temporal Flux Chrono Trigger Editing Videos out there (I'm a wizard with Events, so in the series we're making a Scavenger Hunt for the Millennial Fair as well as Reputation Rank system with BATTLEGROUNDS!)

:)

FireBrandWhip

I know this is a "dumb question" (BUT THE only dumb ones aren't ever ASKED!)  :thumbsup: ...


so if I just half the values--save for the last one, I can have large parks after 50 right?

Couple more questions--as I'm just getting back into ROM hacking...how about the AMUSEMENT PARK/CASINO code?

what if I want that 2x?

Same with landfills...

One MORE:
Let's say I want to add "tree parks" (I'm having trouble finding where it chooses, rand%) and I want the TREE PARKS to have *slightly higher land value* ... this would help me TRAMENDOUSLY!! :)



FireBrandWhip

Quotelorom

; ------------------------------------------
; - 9 large Parks for 100 small parks each -
; ------------------------------------------

org $03C2E5

 CMP $FFE0,y


org $03FFE0

 db $64, $00, $C8, $00, $2C, $01, $90, $01, $F4, $01
 db $58, $02, $BC, $02, $20, $03, $84, $03, $FF, $FF


Are there some special instructions for this to work with xkas?

 I made a text file literally with the exact text and then ran it as asm file in xkas and it corrupted the ROM.

FireBrandWhip

Cool I played around with this expanding it to 15 large parks for 50 Parks each...
Just to get practice with the code that I'm working with.

I assume CMP $0e23 is the old index of parks?

I noticed $0397 is the accumulator counter for the loop it also calculates the total for a lot of other structures in the city map...

Is this the variable you used to figure out the remainder I'm just trying to get footing here so that I can work with Trace routing how many roads it takes to get awarded with the amusement park / casino gift.

🤔