diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 8d464a39e..2ee9ec72d 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -12,8 +12,9 @@ # 1=infinite lives # 2=infinite weapons # 3=infinite lives & weapons -# 4=invincibility -# 5=has in-game cheats +# 4=infinite lives & time +# 5=invincibility +# 6=has in-game cheats # # all other values for A -> ignore entire line (allows inline comments) # A line beginning with '[' terminates the parsing @@ -70,7 +71,7 @@ 1000,BEZARE=Bezare 1000,BEZOFF=Bezoff 0000,BT=Bill Budge's Trilogy -1005,BLACK.MAGIC=Black Magic +1006,BLACK.MAGIC=Black Magic 1000,BLISTER.BALL=Blister Ball 0000,BC=BlockChain 0000,BOA=Boa @@ -123,10 +124,10 @@ 0001,CUBIT=Cubit 0000,CYBER.STRIKE=Cyber Strike 0001,CYCLOD=Cyclod -0115,DG=D-Generation -0015,DANGEROUS.DAVE=Dangerous Dave -0115,DD.RETURNS=Dangerous Dave Returns -0115,DD.GOES.NUTZ=Dangerous Dave Goes Nutz +0116,DG=D-Generation +0016,DANGEROUS.DAVE=Dangerous Dave +0116,DD.RETURNS=Dangerous Dave Returns +0116,DD.GOES.NUTZ=Dangerous Dave Goes Nutz 0001,DU=Darkstar Unhinged 1000,DM=David's Midnight Magic 0110,DEATH.SWORD=Death Sword @@ -154,7 +155,7 @@ 0001,EVOLUTION=Evolution 0001,EXTERMINATOR=Exterminator 0001,FALCONS=Falcons -0004,FAT.CITY=Fat City +0005,FAT.CITY=Fat City 0000,FEDERATION=Federation 0001,FIREBIRD=Firebird 0000,FIREBUG=Firebug @@ -200,7 +201,7 @@ 0000,IO=I.O. Silver 0100,IKARI.WARRIORS=Ikari Warriors 1000,I1=Impossible Mission -0115,I2=Impossible Mission II +0116,I2=Impossible Mission II 0110,INDIANA.JONES=Indiana Jones 1000,INFILTRATOR=Infiltrator 1000,INFILTRATOR.2=Infiltrator 2 @@ -214,12 +215,12 @@ 0000,JUGGLER=Juggler 0000,JUMP.JET=Jump Jet 0001,JUMPMAN=Jumpman -0000,JUNGLE.HUNT=Jungle Hunt +0004,JUNGLE.HUNT=Jungle Hunt 1000,KAMIKAZE=Kamikaze 0000,KARATEKA=Karateka 0001,KID.NIKI=Kid Niki 0001,KUNG.FU.MASTER=Kung Fu Master -0005,LABYRINTH=Labyrinth +0006,LABYRINTH=Labyrinth 0001,LADY.TUT=Lady Tut 0000,LA=Lamb Chops! 0001,LANCASTER=Lancaster @@ -251,8 +252,8 @@ 1001,MINER.II=Miner II 1001,MI=Ming's Challenge 0001,MINIT.MAN=Minit Man -0005,MINOTAUR=Minotaur -1004,MT=Mission on Thunderhead +0006,MINOTAUR=Minotaur +1005,MT=Mission on Thunderhead 0000,MONSTER.MASH=Monster Mash 0001,MZ=Montezuma's Revenge 0001,MOON.PATROL=Moon Patrol @@ -264,10 +265,10 @@ 0000,N.O.R.A.D=N O R A D 0000,NEON=Neon 0001,NEPTUNE=Neptune -0005,NT=Neu][ower +0006,NT=Neu][ower 1000,NEUTRONS=Neutrons 0000,NIBBLER=Nibbler -0005,NM=Night Mission Pinball +0006,NM=Night Mission Pinball 0000,NIGHT.STALKER=Night Stalker 0000,NI=Nightmare Gallery 0000,OM=O'Riley's Mine @@ -312,12 +313,12 @@ 0110,RAMPAGE=Rampage 0001,RANDAMN=Randamn 0000,RASTER.BLASTER=Raster Blaster -1004,RI=Realm of Impossibility -0005,REAR.GUARD=Rear Guard +1005,RI=Realm of Impossibility +0006,REAR.GUARD=Rear Guard 1000,RED.ALERT=Red Alert 1110,RENEGADE=Renegade 0000,REPTON=Repton -0005,RESCUE.RAIDERS=Rescue Raiders +0006,RESCUE.RAIDERS=Rescue Raiders 1000,RETRO.FEVER=Retro Fever 1000,RB=Retro-Ball 0000,RIBBIT=Ribbit @@ -332,7 +333,7 @@ 0002,SABOTAGE=Sabotage 0001,SAMMY.LIGHTFOOT=Sammy Lightfoot 0001,SARACEN=Saracen -0005,SEA.DRAGON=Sea Dragon +0006,SEA.DRAGON=Sea Dragon 0000,SEAFOX=Seafox 0001,SERPENTINE=Serpentine 1000,SHAMUS=Shamus @@ -344,7 +345,7 @@ 0000,SNACK.ATTACK=Snack Attack 0000,SNAKE.BYTE=Snake Byte 0001,SNEAKERS=Sneakers -0005,SNOGGLE=Snoggle +0006,SNOGGLE=Snoggle 0110,SO=Soko-Ban 1000,SOLO.FLIGHT=Solo Flight 1000,SPACE.EGGS=Space Eggs @@ -352,7 +353,7 @@ 0000,SPACE.QUARKS=Space Quarks 0000,SPACE.RAIDERS=Space Raiders 1000,SPACE.RESCUE=Space Rescue -0005,SPARE.CHANGE=Spare Change +0006,SPARE.CHANGE=Spare Change 0001,SPECTRE=Spectre 0100,SPELLWIELDER=Spellwielder 0000,SPIDER.RAID=Spider Raid @@ -387,9 +388,9 @@ 1001,SUPER.ZAXXON=Super Zaxxon 0000,SWASHBUCKLER=Swashbuckler 1000,SWORD.OF.SHEOL=Sword of Sheol -0004,TALON=Talon +0005,TALON=Talon 0001,TAPPER=Tapper -0114,TC=TechnoCop +0115,TC=TechnoCop 0000,TELEPORT=Teleport 0000,TERITORY=Teritory 0010,TETRIS=Tetris diff --git a/src/constants.a b/src/constants.a index 5c6d1d70f..c036162ee 100644 --- a/src/constants.a +++ b/src/constants.a @@ -11,7 +11,7 @@ ; ...unused... ; E000..E3FF - HGR font data ; ...unused... -; E7C3..FFEE - main program code +; E7A7..FFEE - main program code ; FFEF..FFF9 - API functions and global constants available for main program ; code, prelaunchers, transition effects, &c. ; (LoadFileDirect, Wait/UnwaitForVBL, MockingboardStuff, MachineStatus) diff --git a/src/prelaunch/jungle.hunt.a b/src/prelaunch/jungle.hunt.a index 1e263fcbd..cbfcc1d7e 100755 --- a/src/prelaunch/jungle.hunt.a +++ b/src/prelaunch/jungle.hunt.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019 by qkumba/Frank M. +;(c) 2019, 2022 by qkumba/Frank M. !cpu 6502 !to "build/PRELAUNCH.INDEXED/JUNGLE.HUNT",plain @@ -7,6 +7,52 @@ !source "src/prelaunch/common.a" + jmp + + +callback + txa + pha + jsr $BD47 + + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq no_hook + + lda #$60 + sta $D6F ; no timer + ldx #$A5 + lda $BDB1 + cmp #$C1 + beq hook_A + cmp #$C1 + beq hook_A + cmp #$C3 + beq hook_C + cmp #$C6 + beq hook_F + cmp #$C8 + bne no_hook + stx $775E ; no secondary timer + stx $7965 ; don't decrease lives + beq no_hook + +hook_F + stx $78e0 ; don't decrease lives + beq no_hook + +hook_C + stx $78dc ; don't decrease lives + beq no_hook + +hook_A + stx $7bd3 ; don't decrease lives + +no_hook + pla + tax + rts + ++ +ENABLE_ACCEL lda #$60 sta $81E @@ -21,6 +67,11 @@ lda #0 sta $0A67 ; reset vector patch + lda #callback + sta $1D2E + +DISABLE_ACCEL jmp $A00 diff --git a/src/ui.overlay.a b/src/ui.overlay.a index 0e3fe3c5d..5939ce4be 100644 --- a/src/ui.overlay.a +++ b/src/ui.overlay.a @@ -26,6 +26,7 @@ kCheatDescriptionLo !byte sInfiniteLives !byte >sInfiniteWeapons !byte >sInfiniteLivesAndWeapons + !byte >sInfiniteLivesAndTime !byte >sInvincibility !byte >sInGame !byte >sCheatsEnabled @@ -61,6 +63,13 @@ sInfiniteLivesAndWeapons !text "infinite lives & weapons" !text " " !byte $16 ; padlock character +sInfiniteLivesAndTime + !byte 25 ; length + !byte $16 ; padlock character + !text " " + !text "infinite lives & time" + !text " " + !byte $16 ; padlock character sInvincibility !byte 14 ; length !byte $16 ; padlock character