' +-----------------------------------------+ ' | | ' | Sim City Money Hack by MUG U.Kż in 1990 | ' | | ' +-----------------------------------------+ ' IF XBIOS(4)<>1 ALERT 0,"Medium resolution please !",1," Oh ... ",d| EDIT ENDIF ' DIM reg%(16) screen%=XBIOS(2) INLINE depack%,418 INLINE picture%,7067 INLINE music%,3965 INLINE savedpos%,27248 HIDEM unpack(music%,&H72000) m.on%=&H72000 m.of%=&H72006 ' FOR f|=0 TO 3 SETCOLOR f|,7,7,7 NEXT f| unpack(picture%,screen%) CALL m.on% ' DEFMOUSE 0 SETCOLOR 0,0,0,7 SETCOLOR 1,7,0,0 SETCOLOR 2,0,7,0 SETCOLOR 3,7,7,7 wait ' ' +-----------+ ' | Main Loop | ' +-----------+ ' intro start: put_menu IF key|=49 instrux ENDIF ' IF key|=50 credits ENDIF ' IF key|=51 GOTO start_cheat ENDIF ' IF key|=52 quote ENDIF ' IF key|=53 ALERT 0,"Do you really want to|quit this program ?? ",1," Yes | No ",d| IF d|=1 GOTO kwit ENDIF ENDIF ' GOTO start ' ' +--------------+ ' | Load In File | ' +--------------+ ' start_cheat: ' get_file: CLS PRINT AT(22,1);"p q" PRINT AT(22,2);"pSelect 'Sim City' saved file to hack.q" PRINT AT(22,3);"p q" PRINT AT(22,24);"pSim City Money Hack by MUG U.Kż in 1990q" FILESELECT CHR$(GEMDOS(25)+65)+":\*.CTY","",f$ ' IF f$="" ALERT 0,"Cancel was selected!",1," MENU! ",d| GOTO start ENDIF ' IF NOT EXIST(f$) ALERT 0,"File not found !!",1," MENU! ",d| GOTO start ENDIF ' BLOAD f$,savedpos% ' ' +----------------+ ' | Hack the Money | ' +----------------+ ' hack: old_money%=LPEEK(savedpos%+3108) ! Sector 6, +34 bytes city$=CHAR{(savedpos%+2)} ! Sector 0, +02 bytes tax|=PEEK(savedpos%+3121) ! Sector 6, +49 bytes CLS PRINT "Sim City Money Hack by MUG U.Kż in 1990" PRINT "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" PRINT PRINT "City: ";UPPER$(city$) PRINT PRINT "Tax Rate: ";tax| PRINT PRINT "Money in coffers: ";old_money% PRINT PRINT PRINT "Enter new amount (max. ";&HFFFFFF;") or {0} to cancel "; INPUT new_money% ' IF new_money%=0 abort!=TRUE ENDIF ' IF new_money%>&HFFFFFF ALERT 0,"There is always one who tests|every input routine !!",1," Idiot !",d| GOTO hack ENDIF ' IF abort!=TRUE GOTO start ELSE LPOKE (savedpos%+3108),new_money% ENDIF ' ' +-------------------+ ' | Save out new file | ' +-------------------+ ' store: OPEN "U",#1,f$ BPUT #1,savedpos%,27248 CLOSE #1 ' ' +------------+ ' | Another Go | ' +------------+ ' exit: ALERT 2,"Alter another file ?",2,"Yes | No ",d| IF d|=1 CLR abort! GOTO start ELSE GOTO kwit ENDIF ' ' +-----------------+ ' | Quit to desktop | ' +-----------------+ ' kwit: RESERVE 40000 SETCOLOR 0,7,7,7 SETCOLOR 3,0,0,0 CALL m.of% EDIT ' ' +-------------------+ ' | Introductory Page | ' +-------------------+ ' PROCEDURE intro CLS PRINT AT(1,5); centre(0,"+------------------------------------------------------------------------+") centre(0,"| 'SIM CITY MONEY HACK' by MUG U.Kż in 1990 |") centre(0,"| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |") centre(0,"| |") centre(0,"| This was one of the quickest & easiest hacks I have ever had to write, |") centre(0,"| mainly because I have kept a library of routines ready so that coding |") centre(0,"| these cheat routines is now a simple task of disk-doctoring the save |") centre(0,"| position and then hand-crafting the twenty lines of code required to |") centre(0,"| alter the saved position by cheats like YOU !!! |") centre(0,"+------------------------------------------------------------------------+") PRINT PRINT centre(0,"Press any key for main menu.") ~INP(2) RETURN ' ' +-----------+ ' | Menu Page | ' +-----------+ ' PROCEDURE put_menu header centre(1,"Main Menu.") PRINT PRINT SPC(22);"1. View Instructions for this cheat routine." PRINT PRINT PRINT SPC(22);"2. View Credits and other such stuff." PRINT PRINT PRINT SPC(22);"3. Cheat on a saved '.CTY' file." PRINT PRINT PRINT SPC(22);"4. Quotes from Steve Vai's album (??)." PRINT PRINT PRINT SPC(22);"5. Quit to desktop." PRINT PRINT PRINT "This program has been disributed through the Budgie U.K Licenceware scheme." PRINT "Only registered Budgie U.K distributors are allowed to sell this disk." ' keyloop: KEYTEST key| ' IF key|>=49 AND key|<=53 GOTO exit_menu ELSE GOTO keyloop ENDIF ' exit_menu: RETURN ' ' +--------------+ ' | Instructions | ' +--------------+ ' PROCEDURE instrux header centre(1,"The Instructions Page (pointless really I know, but what the hell !!)") PRINT PRINT "This quickly & easily written cheat routine will allow you to alter the amount" PRINT "of money in the coffers. The more you put in, the greater the faith that" PRINT "the people will have in you, as a mayor (bunch of Tories if you ask me !!)." PRINT PRINT "Simply select the saved position you want to alter and you will see the current" PRINT "amount of money in your coffers. Enter the new amount and the saved game" PRINT "will be altered. If you do not wish to cheat (why did you load this up ??)" PRINT "then key in '0' at the input prompt." PRINT PRINT "This cheat routine is one of many that were started & finished within a matter" PRINT "of hours and then all this text stuff was added afterwards !! At least it" PRINT "gives you lot something to read - you'd complain if it was one of those boring" PRINT "'Insert disk and press any key to cheat' kind of program !!!" PRINT PRINT PRINT PRINT "Anyway, you are probably bored of all this, so press any key for the menu." ~INP(2) RETURN ' ' +--------------------+ ' | Credits & messages | ' +--------------------+ ' PROCEDURE credits header PRINT centre(1,"Credits for this little help routine. (OK cheat routine)") PRINT PRINT PRINT "Programming: MUG U.Kż (of course !!) in GFA BASIC v3.07 & Compiler." PRINT PRINT "Hacking: MUG U.Kż (who else ??) with Antics' Disk Doctor (the oldest &" PRINT " still the best/quickest to use !!)" PRINT PRINT "Ego-Tripping: MUG U.Kż (I like writing my name everywhere - so what !!)" PRINT PRINT "Dedicated to: 'Caz'" PRINT PRINT "Inspiration: 'Passion & Warfare' by Steve Vai (Buy it - it's brilliant !!)" PRINT PRINT "Packer: 'ICE Packer v2.11' by Axe of Delight" PRINT PRINT PRINT " Press any key for the contact address." ~INP(2) header PRINT PRINT "If you would like to get in touch with MUG U.Kż, write to the address below." PRINT "Please do not write if you are a pirate or if you require pirated software !!" PRINT PRINT "b2MUG U.Kżb3, (please do not forget to add this bit)" PRINT "c/o Broadsword Computers," PRINT "141 High Street," PRINT "Rhyl." PRINT "CLWYD. LL18 5AG" PRINT PRINT "I will be releasing the 'b1MUG U.Kż Utiltiy Compilation Volume IIb3' as soon as" PRINT "I have written some more useful(?) utilities to fill up the disk. I will only" PRINT "be distributing the disk through the Budgie U.K Licenceware scheme." PRINT PRINT "This means that registered distributors of Budgie U.K will only be able to" PRINT "sell copies of my disk !!" PRINT PRINT " Press any key for civilization (the menu you lame-brain !!)" ~INP(2) RETURN ' ' +--------------------------------+ ' | Lazy routine to save file-size | ' +--------------------------------+ ' PROCEDURE header CLS centre(0,"+-------------------------------------------------------+") centre(0,"| Sim City Money Hack by MUG U.Kż - August 15/16th 1990 |") centre(0,"+-------------------------------------------------------+") PRINT RETURN ' ' +----------+ ' | Quotes ! | ' +----------+ ' PROCEDURE quote CLS centre(1,"Quotes from 'Passion & Warfare' by Steve Vai:-") PRINT centre(1,"'THE ANIMAL'") PRINT centre(0,"When you look deep into the mirror you can see it;") centre(0,"The face of danger, ferocious energy, barbaric brute strength;") centre(0,"Savage vitality and intense vital sensuality.") centre(0,"That's your animal.") PRINT PRINT centre(1,"'EROTIC NIGHTMARES'") PRINT centre(0,"It was a hypnotic state of lust and fantasy. We were all") centre(0,"headed for some sort of galactical orgasm when we realized") centre(0,"that we needed physical bodies to achieve that climax.") centre(0,"Since we were in an etheral body, that climax was") centre(0,"impossible, but still, the desire for fullfillment grew stronger.") PRINT PRINT PRINT "The latter one is dedicated with all my heart to Carolyn Roberts - all the ST" PRINT "owners that I know are now going to disown me after reading this last line !!" ~INP(2) RETURN ' ' +---------------------+ ' | Centre Text routine | ' +---------------------+ ' PROCEDURE centre(mode|,text$) PRINT TAB(40-LEN(text$)/2);text$ IF mode| PRINT TAB(40-LEN(text$)/2);STRING$(LEN(text$),"~") ENDIF RETURN ' ' +-------------+ ' | Simple wait | ' +-------------+ ' PROCEDURE wait DO EXIT IF INKEY$<>"" LOOP UNTIL MOUSEK RETURN ' ' +------------------+ ' | Depack ICE files | ' +------------------+ ' PROCEDURE unpack(from%,too%) ! start addr, destination addr reg%(8)=from% reg%(9)=too% RCALL depack%,reg%() RETURN