1 2
7 8 9 10 11
Joined: 5/29/2004
Posts: 757
DemonStrate wrote:
I'm not sure if it's possible to manipulate the warnings into never appearing. Pollution and crime will always be present, but even though they are running rampant in the megalopolis...
The weird thing I noticed about this, is that if you let the game keep playing after the disasters, it goes down to 28800, and stays there, even though there aren't any buildings with power or nearly any complete squares at all. Why are there still residents?[/quote] Um.. hello! Amish country? DUH! Mr. Kelly R. Flewin
Mr. Kelly R. Flewin Just another random gamer ---- <OmnipotentEntity> How do you people get bored in the span of 10 seconds? Worst ADD ever.
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
Dammit wrote:
I do hope some kind of TAS is being planned?
I have no plans, but I am curious. I may try something, but there's no guarantee.
DemonStrate wrote:
The weird thing I noticed about this, is that if you let the game keep playing after the disasters, it goes down to 28800, and stays there, even though there aren't any buildings with power or nearly any complete squares at all. Why are there still residents?
If the center tile is damaged, the whole building explodes. If the outer tiles are damaged, the building completely freezes and can't change until you bulldoze the rubble around it. As population depends on the level of the zone, those sims are stuck there! However, a little removal of surrounding rubble later, and those buildings can continue to properly shrink.
Joined: 4/18/2006
Posts: 179
Location: East Petersburg, PA
snorlax wrote:
As long as the center tile of a square remains (or the main tile, which you would bulldoze and which flashes the lighning bolt), a developed zone retains its population forever.
Using that concept, a maximum population run would be very interesting to watch.
"I think we can put our differences behind us... for science, you monster."
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
DemonStrate wrote:
snorlax wrote:
As long as the center tile of a square remains (or the main tile, which you would bulldoze and which flashes the lighning bolt), a developed zone retains its population forever.
Using that concept, a maximum population run would be very interesting to watch.
I've seen a screenshot of a game where someone did exactly that. They overflowed the population counter. I think the leftmost digit of their population was either an 'A' or 'C'. The secret is in the airplane. You can crash the airplane at will. So the first thing you do is crash the plane into the airport. As long as the key tile of the airport survives then your airport will operate at 100%. You now have a smaller airport! It's like a free landfill. Now just spend the next 150 years doing that to every other building in your optimal city. You can shave a row or column off of any R, C, TOP, or I zone. "Stacked" zones won't develop into TOPs. TOPs can only develop in a normal 6x3 space. Then you can shave them with fire. EDIT: Google tells me that I have a lot to learn about this game. One million without zone stacking? Unlimited gifts? Wow.
caitsith2
He/Him
Player (46)
Joined: 3/26/2004
Posts: 194
The beauty of rubble tile on every single zone, is that you can cut the power, bulldoze the police stations/fire stations, destroy all of the road tiles, and charge 20% tax, and none of the citizens will be moving despite all of these severe issues.
Banned User
Joined: 5/11/2004
Posts: 1049
I'd love to this. I'd like to help too if I could. I've never been able to get 5 million, it's pretty hard. There is a trick though where you can put powerlines over all your roads and rail-tracks, and they can't deteriorate. Only problem is you can't have your railroads cross a street, but I think with a good design you wouldn't need to. I think it'd be really helpfully to take a look at the source code if possible to see what makes things grow the fastest so you could possibly calculate the fastest growth design. I think it makes most since to build from the middle out because the first things you put down will have the most to grow and thus be the largest and you want to put as much stuff around them. So I think you'd want to build out in something like a spiral but probably tactfully complete certain key larger sections, like completing a loop in the railroad that sticks out, or dropping airport/powerplant earlier than would normally take place in the spiral.
"Great spirits have always found violent opposition from mediocrities. The latter cannot understand it when a man does not thoughtlessly submit to hereditary prejudices but honestly and courageously uses his intelligence."
Post subject: Difficulty?
Joined: 7/19/2006
Posts: 21
Location: San Francisco
A Sim City TASs may be most interesting played at the hardest imaginable difficulty. Perhaps a 600k population on the map with the lowest land to water ratio and no money cheat.
Experienced player (574)
Joined: 1/11/2007
Posts: 103
A lot of improvements have been made to the script, in part from the detective work on the gamefaqs forum. In particular, it can show other parameters besides land value and it reveals the hidden city center tile, which affects land value. http://lua.pastey.net/109351 edit: newer update
Highness wrote:
Maby someone should program a toggle function for switching LUA on/off?
Recent snes9x svns added this ability, along with text color and other improvements. In related news, lua has been added to snes9x 1.51 svn. Great work Gocha! Now we only need to wait 7 or 8 years for players to actually start using 1.51. About the money cheat, the only real effect is to speed up the gameplay from really slow to somewhat slow. Because there aren't any time limits or race conditions in the main game, it doesn't reduce the difficulty.
Post subject: Some difficulties just won't do.
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
I'm still thinking the goal of lowest in-game time to 600k is best. Use the easiest, as anything harder just adds needless waiting, as I see it. Max population can be absurdly slow, as this GameFAQs topic points out a twice rolled-over population counter in one layout. I'm not sure how many thousands of years I can shave off of that attempt. YouTube of said layout. There exists maps where there simply isn't enough land to hit population of 600k, especially Practice Map. Waiting for taxes to build up the cash necessary to build a megalopolis is by no means a fast process. A TAS does not have a very large advantage over an unassisted run, where the main apparent advantages lie only in luck manipulation and crazy-fast zoning. It can't create money out of thin air any better than an unassisted run. It can't design a crazier city structure than is normally possible. There's not a lot where a TAS has any major advantage, though point me to one if you see one. Again, I believe the best choice is fastest possible to 600k. Don't bother making life any tougher. Ack! I was just about to post, then I hit "Preview" and notice another one. You've done a great job, Dammit! (...) May the script help many a player on their path to build a megalopolis.
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
I am thinking passively on how to go through the TAS... To start with, what should we name the city? (First thought being Property, for no obvious reasons that come to mind) Luck manipulate the zones into growing as equally and quickly as possible, but anyone can imagine just how troublesome that can become. Things do grow depending on luck, so a bit of manipulation here... I still believe the best goal is to hit 600k in shortest in-game time, with shortest input coming third. The second goal is arbitrary, showing off various statistics and what happens when one fails to prepare for disasters. Once one hits the goal, I'm thinking one would want to play out whatever congratulatory message that shows up, and show statistics. Then trigger the 6 disasters and manipulate the entire Megalopolis getting destroyed, watching the population go back down to zero from only those 6 disasters (Alas, roughly 5% survives in my test run. We need it 0%!). Finish with player selecting END to show that sleepy crescent moon, so some sort of ending is seen rather than ending it with possible gameplay still hanging. Those are my thoughts. If anyone wants to try, there's my test run and a nice script for use. If no one wants to, I may try on my own time, but don't expect me to rush. I want to hear what should be done before I try to do it, if I'm going to at all.
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
Whoops, wrong file! The first part might look something like this. Cheers for hyper speed building! Game-play begins at around frame 1900. On a side note, there are exactly two R-zones that are not satisfied with transportation. The TAS's only advantages are building at this speed and luck manipulation, if there's anything that can be manipulated. Again, the senseless layout is possible unassisted, and very easy if you're careful enough not to misplace any buildings. For obvious reasons, the building phases would be slower in an unassisted run. But that's about it. Waiting for time to pass involves not touching the controller. I can't pan the camera around without slowing down the passage of time, as far as I know. I may have picked a good spot to stop at, considering how much of the growing city I show. A lot of time is spent on waiting and doing nothing in particular. Just look at how long it takes to get to the tax screen at the end of the year. That's going to put a dent in entertainment... I may like subtitles, but I don't want them to be the exclusive source of entertainment during these parts.
Player (116)
Joined: 5/13/2009
Posts: 700
Location: suffern, ny
Hm.. i always wondered what sim city would look like played at hyper speed. good job
[19:16] <scrimpy> silly portuguese [19:16] <scrimpy> it's like spanish, only less cool
arflech
He/Him
Joined: 5/3/2008
Posts: 1120
The population goes up just above 70000 before settling around 46000, largely because of transportation decay.
i imgur com/QiCaaH8 png
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
arflech wrote:
The population goes up just above 70000 before settling around 46000, largely because of transportation decay.
The transportation decay happens because I didn't do the money trick to give myself $999,999. I didn't do the money trick because I ended input rather early. Mostly, I'm demonstrating the speedy construction. At the moment, I'm wondering if I should just sit there until the end of the year or pan the camera around the growing city and slow things down (holding any button on the controller freezes time) for entertainment. I show a sizable portion just sitting there, but seeing the same thing for a few minutes isn't exactly the most entertaining thing I can think of. However, I did decide what to do at the end. Once I hit 600k population, I will let the message that shows up play out fully. After the message disappears, I will show the map (Comprehensive, Pop. Density, Pollution, Crime rate, Land Value, then Police Radius), Voice, Totals, and History. After everything is said and done, I will end it all by selecting end and showing that sleepy moon. Causing disasters and leveling the megalopolis is also considered. But basically, I want to know these: - Slow down the game by panning the camera around, or sit there and let time pass a little faster? The difference isn't likely more than several seconds anyway. - Destroy my city of non-sense with a few select disasters? I will be crafting up a lua script to point out mechanics of this game for all the waiting. Never hurts to have something, but I don't intend for the script to affect the judging process. If the unaided viewer finds it boring, I don't want the informational aid to change the opinion of whether it should be published, even if the now-aided viewer is quite interested.
Joined: 5/13/2006
Posts: 283
I don't know if you already know this, but you can slowly move the camera around just by moving the cursor towards the edge of the screen. I don't think it pauses the city like the quick pan does...
<Zurreco> if so called professional players cant adapt to every playing field, theyre obviously not that great
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
kwinse wrote:
I don't know if you already know this, but you can slowly move the camera around just by moving the cursor towards the edge of the screen. I don't think it pauses the city like the quick pan does...
FatRatKnight wrote:
At the moment, I'm wondering if I should just sit there until the end of the year or pan the camera around the growing city and slow things down (holding any button on the controller freezes time) for entertainment. [...]
I say it will slow things down. Else holding down the L button wouldn't work for things like the Boston Nuclear Meltdown or the money trick. EDIT: Although, I never did check for frame-precise cursor movements to see if I can ever move that cursor or something without, you know, freezing the simulation for a frame.
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
I've been working on some lua scripts. Mainly reworking the one that Dammit made (It's proved helpful. Thanks) and milling around with subtitles. If I'm going to wait out for the city to grow, I'm going to make a script that will teach you how to create fully functional cities with absolutely no sense in them. Complete with simple animation involving boxes! I know, subtitles shouldn't determine whether the run will be published. What the viewer sees should go unaided if we want to be fair. But I may as well try to be impressive with those subtitles while I'm at it. Maybe even train a few veteran senseless city builders while I'm at it! I'll pan the camera around to help support the subtitles. This will be done minimally, however, as little as I can get away with, since each frame I'm holding a button freezes time. Besides, you won't be stuck seeing the same part of town for the entire 3 minutes we're stuck waiting for the first year to pass, so at least the unaided viewer gets to see something else for a little while.
Joined: 2/26/2007
Posts: 1360
Location: Minnesota
Sounds interesting. I support this development.
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
Rediscovering glitches I can use. It'll take a while, but I can replace water tiles this way. I can also shrink everything down, making real efficient zone-stacking. Stuff like that. I'm not exactly for this glitch, but a TAS is generally about breaking the game if it allows one to push it to the limits. And do so in a timely manner. Having the cursor planting power lines in the black gunk, then scrolling over to see all these horizontal power-lines where there once existed water will certainly have an unusual WTF factor. Thinking about this convinces me I should do it anyway, especially since it likely can reduce the in-game time to 600k population a bit. This will also affect my planned layout -- The city center will shift thanks to the fact I can have new zones where there previously was water instead. This shift causes a change in Land Value in many places, which will prevent certain areas from allowing R-zones to reasonably grow while allowing other areas to do so. I've created a simple script that identifies what the cursor is pointing at. (CursorX + CameraX) needs to be a negative value if replacing tiles is going to happen. Recommend you use a "small" tool like parks or power lines.
local addrStrt=  0x7F0200 --Start of everything.

local CamX,CamY= 0x7E01BD,0x7E01BF -- Memory where camera position is stored
local CsrX,CsrY= 0x7E01EB,0x7E01ED -- Position of cursor by pixel
local IsBox=     0x7E0201          -- Is the cursor a box?

local CursorX, CursorY, CameraX, CameraY, BoxMode, TileLoc, TileVal

function RefreshScript()
    CursorX= math.floor(memory.readwordsigned(CsrX)/8)
    CursorY= math.floor(memory.readwordsigned(CsrY)/8)
    CameraX=            memory.readwordsigned(CamX)
    CameraY=            memory.readwordsigned(CamY)
    BoxMode= (memory.readbyte(IsBox) ~= 0)

    TileLoc= CameraX+CursorX + 120*(CameraY+CursorY)
    TileVal= memory.readword(addrStrt + TileLoc*2)
end

function DumpStats()
    if BoxMode then
        gui.text(  1,  1,CursorX)
        gui.text(  1, 11,CursorY)
        gui.text(  1, 21,CameraX)
        gui.text(  1, 31,CameraY)
        gui.text(  1, 41,TileLoc)
        gui.text(  1, 51,string.format("%X",TileVal))
    end
end

while true do
    RefreshScript()
    DumpStats()
    emu.frameadvance()
end
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
Messing around with lua scripts some more. Actually, I wanted an ongoing mini-map, in order to help reveal the watery mess I'm removing while I'm glitching around in the black zone. However, it's also fun watching how the game actually generates maps! The map script is slow, as its reading from 12000 locations, working out what each means, and then painting 12000 pixels. Every single frame. I'll be looking over some other functions looking for something that might speed things up. If not, the slowdown isn't too unbearable. I'll throw a piece of the script here. Do sit there mesmerized while watching the game itself generate a map, revealed by the script!
local addrStrt=  0x7F0200

local c={}
c[0]= 0x808080FF -- Open land
c[1]= 0x000080FF -- Water
c[2]= 0x000080FF -- Water
c[3]= 0x00000080 -- ... I don't know...

for z= 0x0004,0x0013 do -- Shores!
    c[z]= 0x008080FF
end

for z= 0x0014,0x0026 do -- Forests!
    c[z]= 0x008000FF
end


function ShowMap()
    for i= 0, 119 do
        for j= 0, 99 do
            local color= 0x00000080
            local V= bit.band(memory.readword(addrStrt + (i + j*120)*2),0x0FFF)
            if c[V] then
                color= c[V]
            end
            gui.pixel( 48+i, 89+j,color)
        end
    end
end

gui.opacity(0.5)
while true do
    ShowMap()
    emu.frameadvance()
end
Limne
Any
Joined: 2/24/2010
Posts: 153
I don't suppose anyone could do an encode of the sample posted just above, could they? I'd love to give it a look. This was one of my favorite games as a kid so I'm curious to know what a TAS might do with it. On the other hand, part of me wonders at just how much fun it would be watching a city sit there, "developing" minute by minute, regardless of how ridiculous plan might be. Personally, I'd recommend doing the $999,999 trick; it' a legitimately exploitable bug, it's one most unassisted players probably use anyway, and it would probably make the run several minutes faster and less boring. If you're going to be glitching yourself into the black border to build on water anyway it makes no sense at all to ignore THE glitch that made this game the experience that it is. I'm in agreement that this run's only goal ought to be reaching Megalopolis status as quickly as possible, but a few seconds to pan around the city while waiting for the end of the first year is a perfectly sensible speed-entertainment trade-off.
snorlax
He/Him
Joined: 5/20/2007
Posts: 174
Location: Wisconsin
I just thought of something: if you do plan on panning around the city during wait periods, you should try to show the formation of as many "TOP"s as you can.
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
Limne wrote:
I don't suppose anyone could do an encode of the sample posted just above, could they? I'd love to give it a look.
I'll throw in my own request as well. I will appreciate it as much as you would should someone encode and upload to YouTube. I have little knowledge of how to create decent media files. In particular, could someone run that script of mine, and explore the "START NEW CITY" for a bit? Just scroll through the maps with the script active. Hopefully create a .avi .mkv .mp4 or whatever media file while you're at it.
Limne wrote:
Personally, I'd recommend doing the $999,999 trick; [...]
No question about that. I'm going to use that trick. No one would want to wait forever for silly things like taxes!
snorlax wrote:
I just thought of something: if you do plan on panning around the city during wait periods, you should try to show the formation of as many "TOP"s as you can.
Alas, the number of TOPs I'll likely end up getting on the fast road to Megalopolis would be zero. I simply won't have the needed Land Value for those things anywhere! Messing around some more with lua scripts. Now we can directly alter any tile! (pastey link) Mainly, I want to see what sort of city I should build if I have no water to worry about. Basically, I wanted to create a shortcut for myself when planning things out.
Editor, Skilled player (1157)
Joined: 9/27/2008
Posts: 1084
No frame advance or save states, but script-assisted off-map glitching. It's... Hard to see what's going on. I need to make several trips back and forth because, apparently, the game is reading a different tile to find out if I can put down a power line. First, the quick pan using the A button puts the cursor in the non-glitch area. There are specific increments I can go to in order to put the cursor back into glitchmode, but I can't maintain the TAS-like building speed like in my WIP. Second, I can't move the cursor to the right. Up, down, and left are possible, but moving the cursor to the right isn't possible. I can pan to the right, but it gets the cursor out of glitchmode... Except in those specific increments I talked about. I'm a bit vague about those "specific increments," but at the moment, I'm not sure how to explain it. When I get a clearer idea, I'll try explaining it. Without any script helping you watch my movie, you'll be rather surprised at finding perfectly dry power lines where there was once water, when I finally scroll back. With a script, you can actually tell what's happening while I'm glitching stuff! Here's a script much like the one I used if you want to see what I was looking at:
local c= {}
c[0]= 0x808080FF -- Open land
c[1]= 0x000080FF -- Water
c[2]= 0x000080FF -- Water
c[3]= 0x00000080 -- ... I don't know...

for z= 0x0004,0x0013 do -- Shores!
    c[z]= 0x008080FF
end

for z= 0x0014,0x0026 do -- Forests!
    c[z]= 0x008000FF
end

local addrStrt=  0x7F0200 --Start of everything.

local CamX,CamY= 0x7E01BD,0x7E01BF -- Memory where camera position is stored
local CsrX,CsrY= 0x7E01EB,0x7E01ED -- Position of cursor by pixel
local IsBox=     0x7E0201          -- Is the cursor a box?

local CursorX, CursorY, CameraX, CameraY, BoxMode, TileLoc, TileVal

--*****************************************************************************
function RefreshScript()
--*****************************************************************************
    CursorX= math.floor(memory.readwordsigned(CsrX)/8)
    CursorY= math.floor(memory.readwordsigned(CsrY)/8)
    CameraX=            memory.readwordsigned(CamX)
    CameraY=            memory.readwordsigned(CamY)
    BoxMode= (memory.readbyte(IsBox) ~= 0)

    TileLoc= CameraX+CursorX + 120*(CameraY+CursorY)
    TileVal= memory.readword(addrStrt + TileLoc*2)
end

--*****************************************************************************
function DumpStats()
--*****************************************************************************
    gui.text(  1,  1,CursorX)
    gui.text(  1, 11,CursorY)
    gui.text(  1, 21,CameraX)
    gui.text(  1, 31,CameraY)
    gui.text(  1, 41,TileLoc)
    gui.text(  1, 51,string.format("%X",TileVal))
end

--*****************************************************************************
function TileOverlay()
--*****************************************************************************
    for i= 0, 31 do
        local ThisTileX= i+CameraX
        for j= 0, 27 do
            local Temp= j+CameraY
            Temp= Temp*120 + ThisTileX

            local color= false
            if (Temp >= 0) and (Temp < 12000) then
                local TileID= bit.band(memory.readword(addrStrt+Temp*2),0x0FFF)
                if c[TileID] then
                    color= c[TileID]
                else
                    color= 0xFFFFFF80
                end
            end
            if color then
                gui.box(i*8,j*8,i*8+7,j*8+7,color,color)
            end
        end
    end
end


--local LastLoc= 0
--local JoyPress= {}
--JoyPress["B"]= true
gui.opacity(0.5)

while true do
    RefreshScript()
    TileOverlay()
    if BoxMode then
        DumpStats()
        if (CursorX + CameraX) < 0 then
            gui.text(15,1,"Glitchmode",0xFF0000FF)
--            if (TileLoc ~= LastLoc) and ((TileVal == 1) or (TileVal == 2)) then
--                joypad.set(1,JoyPress)
--            end
        end
--        LastLoc= TileLoc

    end
    emu.frameadvance()
end
Limne
Any
Joined: 2/24/2010
Posts: 153
You've mentioned before that pushing any button on the controller is supposed to stop the game's timer... It suddenly occurs to me; didn't this game have mouse support? If so, does using it effect the game's timer differently? Is there a way to do the money trick (or that glitch that allows you to build in the black void) or even just to switch between mouse and gamepad? Edit: Nevermind. I was led astray by Wikipedia and some reviews.
1 2
7 8 9 10 11