From 7f4f774eb4a100d9e853ae498675b889519a6a04 Mon Sep 17 00:00:00 2001 From: 10yard Date: Thu, 8 Jul 2021 13:55:08 +0100 Subject: [PATCH] Update to v0.17 Add DK Rivets artwork Add recording emulator column to romlist. A preferred emulator can be set for recording or recording can be disabled. Update romlist to include DK Rivets and remove the recording version of Donkey Kong since the launch menu can be used to "launch with .inp recording" --- VERSION | 2 +- artwork/about/frontend.png | Bin 10151 -> 10236 bytes artwork/about/gameinfo.png | Bin 8477 -> 13542 bytes artwork/about/patches.png | Bin 2999 -> 1927 bytes artwork/about/slots.png | Bin 8023 -> 8355 bytes artwork/icon/dkongrivets/dkong.png | Bin 0 -> 318 bytes dk_system.py | 24 +++++----- launch.py | 37 +++++++++------- readme.md | 8 ++-- romlist.csv | 69 ++++++++++++++--------------- 10 files changed, 72 insertions(+), 68 deletions(-) create mode 100644 artwork/icon/dkongrivets/dkong.png diff --git a/VERSION b/VERSION index 7db9326..aabaf51 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v0.16b \ No newline at end of file +v0.17b \ No newline at end of file diff --git a/artwork/about/frontend.png b/artwork/about/frontend.png index 7e1d0742d8a7778b46c848c1dd3e96b77f4e969f..0d5c438880b2a7eefd261bb2fba1746eb3db8213 100644 GIT binary patch literal 10236 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 literal 10151 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

?czpEkeC%%)64k687{l9lQU&>B)L22Flk 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 S>+}C5fRvcLXtjtz;Qs-!uT=y9 literal 8477 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 G`ab|tLxtx6 diff --git a/artwork/about/patches.png b/artwork/about/patches.png index 7ecac8c3aba41b977ea3932915f629ef1ffa9839..91a5b1ae6cac0c44a5926bcd5712ea30e17f7b17 100644 GIT binary patch literal 1927 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 diff --git a/artwork/about/slots.png b/artwork/about/slots.png index 0b652b2978e1259bd72926b9c8f5628103ff5821..5b49de34b9d8f5fc4e35ec5c41bfa36a5ecd2591 100644 GIT binary patch literal 8355 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 D^`;>5 literal 8023 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 Vr!U$b{`u3>K<~Ql2W>mxzW^19I|={* diff --git a/artwork/icon/dkongrivets/dkong.png b/artwork/icon/dkongrivets/dkong.png new file mode 100644 index 0000000000000000000000000000000000000000..d62264658ee520229b73848582792dbf82e211b0 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eQ!3HG1Sky`ZDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5`$3q|f;CtLD0tb^#WBRfKUw78pa1sEoDG~_!n_jynRRzq z%>B5(t4kxo;oc|F8EuX2$B!QPGS_;&M`z4uo?EbTCFisQtn1?UpPRtAmdKI;Vst08ATrwEzGB literal 0 HcmV?d00001 diff --git a/dk_system.py b/dk_system.py index e9149c2..25f0a46 100644 --- a/dk_system.py +++ b/dk_system.py @@ -57,26 +57,26 @@ def read_romlist(): romlist = [] with open("romlist.csv", "r") as rl: for row in rl.readlines(): - if not row.startswith("#") and row.count(",") == 9: - name, sub, des, alt, slot, emu, unlock, score3, score2, score1, *_ = [x.strip() for x in row.split(",")] + if not row.startswith("#") and row.count(",") == 10: + name, sub, des, alt, slot, emu, rec, unlock, st3, st2, st1, *_ = [x.strip() for x in row.split(",")] if not emu.strip(): - emu = "1" + emu = "1" + if not rec.strip(): + rec = "0" # DK Junior is optional in the default frontend so replace with DK Pies if not available if not os.path.exists(os.path.join(ROM_DIR, "dkongjr.zip")): - if name == "dkongjr" and slot == "5": + if name == "dkongjr" and slot == "3": name, sub, des, alt = "dkong", "dkongpies", "DK Pies", "DK Pies Only" elif sub == "dkongpies" and slot == "99": continue - # In record mode checks. if "-record" in get_emulator(int(emu)).lower(): + # LUA hacks don't support recording so shouldn't have -record as default. if sub in LUA_HACKS: - # Recording is not supported for LUA hacks at the moment - emu = "1" - else: - # Score targets are not considered for recordings - score3, score2, score1 = ("",) * 3 + continue + # Score targets are not considered for recordings + st3, st2, st1 = ("",) * 3 if name and des: if not alt: @@ -84,7 +84,7 @@ def read_romlist(): icx, icy = -1, -1 if 0 < int(slot) <= len(SLOTS): icx, icy = SLOTS[int(slot) - 1] - romlist.append((name, sub, des, alt, icx, icy, int(emu), int(unlock), score3, score2, score1)) + romlist.append((name, sub, des, alt, icx, icy, int(emu), int(rec), int(unlock), st3, st2, st1)) return romlist @@ -102,7 +102,7 @@ def build_launch_command(info, basic_mode): # Receives subfolder (optional), name, emulator, unlock and target scores from info # If mame emulator supports a rompath (recommended) then the rom can be launched direct from the subfolder # otherwise the file will be copied over the main rom to avoid a CRC check fail. See ALLOW_ROM_OVERWRITE option. - subfolder, name, emu, unlock, score3, score2, score1 = info + subfolder, name, emu, rec, unlock, score3, score2, score1 = info emu_args = get_emulator(emu) emu_args = emu_args.replace("", f"{name}_{subfolder}_{get_datetime()}.inp") launch_directory = os.path.dirname(emu_args.split(" ")[0]) diff --git a/launch.py b/launch.py index 7926b0d..acff18b 100644 --- a/launch.py +++ b/launch.py @@ -324,7 +324,7 @@ def display_icons(detect_only=False, with_background=False, below_y=None, above_ nearby = None info_list = [] # Display icons and return icon that is near to Jumpman - for _x, _y, name, sub, des, alt, emu, unlock, score3, score2, score1 in _g.icons: + for _x, _y, name, sub, des, alt, emu, rec, unlock, st3, st2, st1 in _g.icons: p_des = alt if alt.strip() else des unlocked = True if _g.score < unlock and UNLOCK_MODE and not BASIC_MODE and not intro: @@ -341,22 +341,23 @@ def display_icons(detect_only=False, with_background=False, below_y=None, above_ # Pauline to announce the game found near Jumpman. Return the game icon information. if not unlocked and since_last_move() % 4 > 2: p_des = f"UNLOCK AT {unlock}" - elif unlocked and score3 and score2 and score1 and not BASIC_MODE: + elif unlocked and st3 and st2 and st1 and not BASIC_MODE: if since_last_move() % 5 > 4: - p_des = f'1ST PRIZE AT {format_K(score1)}' + p_des = f'1ST PRIZE AT {format_K(st1)}' elif since_last_move() % 5 > 3: - p_des = f'2ND PRIZE AT {format_K(score2)}' + p_des = f'2ND PRIZE AT {format_K(st2)}' elif since_last_move() % 5 > 2: - p_des = f'3RD PRIZE AT {format_K(score3)}' + p_des = f'3RD PRIZE AT {format_K(st3)}' elif '-record' in _s.get_emulator(emu) and since_last_move() % 4 > 2: + # In case the default emu is for recordings p_des = 'FOR RECORDING!' - elif not score3.strip() and since_last_move() % 4 > 2: + elif not st3.strip() and since_last_move() % 4 > 2: p_des = 'FOR PRACTICE!' elif not int(FREE_PLAY or BASIC_MODE) and since_last_move() % 4 > 2: p_des = f'${str(PLAY_COST)} TO PLAY' write_text(p_des.upper(), x=108, y=37, fg=WHITE, bg=MAGENTA, bubble=True) if unlocked: - nearby = (sub, name, emu, unlock, score3, score2, score1) + nearby = (sub, name, emu, rec, unlock, st3, st2, st1) _g.selected = p_des if not detect_only: _g.screen.blit(img, (_x, _y)) @@ -471,11 +472,11 @@ def build_menus(initial=False): _g.menu = pymenu.Menu(GRAPHICS[1], GRAPHICS[0], QUESTION, mouse_visible=False, mouse_enabled=False, theme=dkafe_theme, onclose=close_menu) _g.menu.add_vertical_margin(5) - for name, sub, desc, alt, icx, icy, emu, unlock, score3, score2, score1 in _s.read_romlist(): + for name, sub, desc, alt, icx, icy, emu, rec, unlock, st3, st2, st1 in _s.read_romlist(): if _g.score >= unlock or not UNLOCK_MODE or BASIC_MODE: - _g.menu.add_button(alt, launch_rom, (sub, name, emu, unlock, score3, score2, score1)) + _g.menu.add_button(alt, launch_rom, (sub, name, emu, rec, unlock, st3, st2, st1)) if initial and int(icx) >= 0 and int(icy) >= 0: - _g.icons.append((int(icx), int(icy), name, sub, desc, alt, emu, unlock, score3, score2, score1)) + _g.icons.append((int(icx), int(icy), name, sub, desc, alt, emu, rec, unlock, st3, st2, st1)) _g.menu.add_vertical_margin(10) _g.menu.add_button('Settings', open_settings_menu) _g.menu.add_button('Close Menu', close_menu) @@ -506,20 +507,20 @@ def build_launch_menu(): # Special launch menu nearby = display_icons(detect_only=True) if nearby: - sub, name, emu, unlock, score3, score2, score1 = nearby + sub, name, emu, rec, unlock, st3, st2, st1 = nearby title = _g.selected.center(24) inps = _s.get_recording_files(emu, name, sub) _g.launchmenu = pymenu.Menu(200, 224, title, mouse_visible=False, mouse_enabled=False, theme=dkafe_theme, onclose=close_menu) - if emu != 2: + if '-record' not in _s.get_emulator(emu): _g.launchmenu.add_button('Launch game', launch_rom, nearby) _g.launchmenu.add_vertical_margin(15) - if sub in LUA_HACKS: + if rec == 0 or sub in LUA_HACKS: _g.launchmenu.add_label('Sorry, recording is not', selectable=False, font_color=GREY) _g.launchmenu.add_label('possible for this game', selectable=False, font_color=GREY) else: - _g.launchmenu.add_button('Launch with .inp recording', launch_rom, nearby, 2) + _g.launchmenu.add_button('Launch with .inp recording', launch_rom, nearby, rec) _g.launchmenu.add_vertical_margin(15) _g.launchmenu.add_label('Playback latest recordings:', underline=True, selectable=False) _g.launchmenu.add_vertical_margin(1) @@ -621,10 +622,12 @@ def shutdown_system(): def launch_rom(info, override_emu=None): + # Launch the rom using provided info. Override is used to change emu number in case of recordings (to rec number). if info: - sub, name, emu, unlock, score3, score2, score1 = info + sub, name, emu, rec, unlock, st3, st2, st1 = info if override_emu: - info = sub, name, override_emu, unlock, score3, score2, score1 + emu = override_emu + info = sub, name, emu, rec, unlock, st3, st2, st1 _g.timer.stop() # Stop timer while playing arcade _g.menu.disable() if _g.launchmenu: @@ -658,7 +661,7 @@ def launch_rom(info, override_emu=None): clear_screen(and_reset_display=True) if competing: # Check to see if Jumpman achieved 1st, 2nd or 3rd score target to earn coins - scored = get_award(name, score3, score2, score1) + scored = get_award(name, st3, st2, st1) if scored > 0: _g.awarded = scored _g.timer.reset() diff --git a/readme.md b/readme.md index 3412552..d5d874d 100644 --- a/readme.md +++ b/readme.md @@ -7,7 +7,7 @@ An arcade game launcher based on Donkey Kong made for arcade cabinets with incen ![DKAFE frontend](https://github.com/10yard/dkafe/blob/master/artwork/about/frontend.png) -The frontend system mimics Donkey Kong gameplay. You control Jumpman on the familiar girders stage and have him select which arcade game to launch. +The frontend system mimics Donkey Kong gameplay. You control Jumpman on the familiar girders stage and have him select which arcade game to launch. Simply walk up to a machine, push "Up" to face towards it, then push "Jump" to play. The default setup showcases all the excellent Donkey Kong hacks that have been developed by the community along with some new hacks that were made specifically for this frontend. @@ -41,7 +41,7 @@ Jumpman has regenerated as the next Dr Who. Help him rescue his assistant from **DK Last Man Standing** You will lose penalty points instead of lives so don't make mistakes unless you have earned enough points to survive. You decide when to stop playing! **DK Pies** and **DK Rivets** -These hacks contains only one stage. The pies hack begin on level 1 - which is not available in regular DK. Can you reach the killscreen? +These hacks contains only one stage. The pies hack starts on level 1 - which is not available in regular DK. Can you reach a killscreen? ### This project does not include: - Roms or information on how to obtain them. @@ -369,7 +369,9 @@ The file can be configured to launch roms from the default rom directory (by lea The subfolder is useful when you have multiple roms with the same name e.g. there are lots of hacked versions of dkong.zip. If the emulator supports a rompath argument then DKAFE will launch the rom directly from its subfolder. If the emulator does not support a rompath (e.g. Advmame) then the rom will be copied over to the main rompath. See ALLOW_ROM_OVERWRITE option. With this approach I recommend the original rom be placed into its own subfolder (e.g. **/roms/original**) to prevent it from being overwritten. -All roms in the list should be given an emulator number (as defined in settings.txt), a slot position (between 1 and 46) and a basic descriptive name. Set the slot position to 0 or 99 if you want the rom to only appear in the menu. +All roms in the list should be given an emulator number (e.g. 1 for DKWolf, as defined in settings.txt), a slot position (between 1 and 46) and a basic descriptive name. Set the slot position to 0 or 99 if you want the rom to only appear in the menu. + +As well as an emulator number, the roms can be given a recording emulator number (e.g. 2 for DK Wolf recordings). This provides emulator details for when the rom is launched in recording mode. Set to zero to disable recording. The special subfolder name **shell** can be used when you want to launch a batch file or shell script. Create a .bat or .sh file inside the **/shell** subfolder. The emulator number can be left blank. diff --git a/romlist.csv b/romlist.csv index 61559bd..e15e47f 100644 --- a/romlist.csv +++ b/romlist.csv @@ -1,35 +1,34 @@ -#Rom Name,Sub Folder,Frontend Description,Alt Menu Description,Slot,Emu,Unlock,3rd Prize,2nd Prize,1st Prize -dkong,,DK Record.,DK Recording (.inp),1,2,0,,, -dkong,,Donkey Kong,,3,1,0,10000,25000,40000 -dkongjr,,DK Junior,,5,1,0,10000,15000,30000 -dkong,dkonglava,DK Lava!,DK Lava Panic!,8,1,1000,10000,20000,40000 -dkongx11,dkongspooky,DK Spooky,DK Spooky Remix,10,1,2000,10000,15000,30000 -dkong,dkongrev,DK Reverse,,11,1,4000,10000,20000,40000 -dkongf,dkongst2,DK Springs,,14,1,6000,10000,15000,30000 -dkong,dkongwho,DK Who,DK Who and the Daleks,15,1,8000,10000,20000,40000 -dkong,dkongwbh,DK Wild,DK Wild Barrels,17,1,10000,1000,2000,5000 -dkongf,dkongf,DK Foundry,,18,1,12000,10000,20000,40000 -dkong,dkongitd,DK IntoTheDark,DK Into The Dark,19,1,14000,8000,15000,35000 -dkong,dkongotr,DK OnTheRun,DK On The Run,21,1,16000,10000,15000,30000 -dkongx11,dkongxmas,DK Xmas,DK Christmas Remix,22,1,18000,10000,15000,30000 -dkong,dkonglastman,DK LastMan,DK Last Man Standing,24,1,20000,10000,20000,45000 -dkongx,dkongdk2,DK 2,DK2 Jumpman Returns,25,1,22000,5000,10000,25000 -dkong,dkong2600,DK 2600,DK Atari 2600 Graphics,26,1,24000,10000,20000,40000 -dkong,dkongrnd,DK Random,DK Randomized,27,1,26000,10000,25000,50000 -dkong,dkongtj,DK Jungle,DK Twisted Jungle,29,1,28000,10000,25000,45000 -dkong,dkongcb,DK Crazy,DK Crazy Barrels,31,1,30000,10000,20000,40000 -dkongf,dkongrdemo,DK Remix,DK Remix Demo,33,1,32000,10000,20000,45000 -dkong,dkongrainbow,DK Rainbow,,34,1,34000,10000,25000,50000 -dkonghrd,dkonghrd,DK Hard,,35,1,36000,10000,15000,25000 -dkong,dkongl05,DK SkipStart,DK Skip Start,37,1,38000,8000,15000,25000 -dkong,dkongfr,DK FreeRun,DK Freerun Edition,40,1,40000,20000,40000,75000 -dkongpe,dkongpe,DK Pauline Ed,DK Pauline Edition,42,1,42000,8000,15000,25000 -dkong,dkongbarpal,DK Barrelpalooza,DK Barrelpalooza,45,1,44000,10000,25000,50000 -dkong,dkongce,DK Champ Ed.,DK Championship Edition,46,1,46000,10000,25000,50000 -dkong,dkongpies,DK Pies Only,DK Pies Only,99,1,0,,, -dkong,dkongrivets,DK Rivets Only,DK Rivets Only,99,1,0,,, -dkong,dkongpac,DK Pac-Man,,99,1,0,,, -dkong,dkongksfix,KS Fix,DK Killscreen Fix,99,1,0,,, -dkong,dkongtrn,DK Trainer,,99,1,0,,, -dkong,dkongpace,DK Pace,,99,1,0,,, -dkong,dkongbcc,DK Barrel Control,DK Barrel Control,99,1,0,,, +#Rom Name,Sub Folder,Frontend Description,Alt Menu Description,Slot,Emu,Rec,Unlock,3rd Prize,2nd Prize,1st Prize +dkong,,Donkey Kong,,1,1,2,0,10000,25000,40000 +dkongjr,,DK Junior,,3,1,2,0,10000,15000,30000 +dkong,dkonglava,DK Lava!,DK Lava Panic!,5,1,0,1000,10000,20000,40000 +dkong,dkongrivets,DK Rivets,DK Rivets Only,8,1,2,2000,10000,20000,40000 +dkongx11,dkongspooky,DK Spooky,DK Spooky Remix,10,1,2,4000,10000,15000,30000 +dkong,dkongrev,DK Reverse,,11,1,2,6000,10000,20000,40000 +dkongf,dkongst2,DK Springs,,14,1,2,8000,10000,15000,30000 +dkong,dkongwho,DK Who,DK Who and the Daleks,15,1,0,10000,10000,20000,40000 +dkong,dkongwbh,DK Wild,DK Wild Barrels,17,1,2,12000,1000,2000,5000 +dkongf,dkongf,DK Foundry,,18,1,2,14000,10000,20000,40000 +dkong,dkongitd,DK IntoTheDark,DK Into The Dark,19,1,2,16000,8000,15000,35000 +dkong,dkongotr,DK OnTheRun,DK On The Run,21,1,2,18000,10000,15000,30000 +dkongx11,dkongxmas,DK Xmas,DK Christmas Remix,22,1,2,20000,10000,15000,30000 +dkong,dkonglastman,DK LastMan,DK Last Man Standing,24,1,0,22000,10000,20000,45000 +dkongx,dkongdk2,DK 2,DK2 Jumpman Returns,25,1,2,24000,5000,10000,25000 +dkong,dkong2600,DK 2600,DK Atari 2600 Graphics,26,1,2,26000,10000,20000,40000 +dkong,dkongrnd,DK Random,DK Randomized,27,1,2,28000,10000,25000,50000 +dkong,dkongtj,DK Jungle,DK Twisted Jungle,29,1,2,30000,10000,25000,45000 +dkong,dkongcb,DK Crazy,DK Crazy Barrels,31,1,2,32000,10000,20000,40000 +dkongf,dkongrdemo,DK Remix,DK Remix Demo,33,1,2,34000,10000,20000,45000 +dkong,dkongrainbow,DK Rainbow,,34,1,2,36000,10000,25000,50000 +dkonghrd,dkonghrd,DK Hard,,35,1,2,38000,10000,15000,25000 +dkong,dkongl05,DK SkipStart,DK Skip Start,37,1,2,40000,8000,15000,25000 +dkong,dkongfr,DK FreeRun,DK Freerun Edition,40,1,2,42000,20000,40000,75000 +dkongpe,dkongpe,DK Pauline Ed,DK Pauline Edition,42,1,2,44000,8000,15000,25000 +dkong,dkongbarpal,DK Barrelpalooza,DK Barrelpalooza,45,1,2,46000,10000,25000,50000 +dkong,dkongce,DK Champ Ed.,DK Championship Edition,46,1,2,48000,10000,25000,50000 +dkong,dkongpies,DK Pies Only,DK Pies Only,99,1,2,0,,, +dkong,dkongpac,DK Pac-Man,,99,1,2,0,,, +dkong,dkongksfix,KS Fix,DK Killscreen Fix,99,1,2,0,,, +dkong,dkongtrn,DK Trainer,,99,1,2,0,,, +dkong,dkongpace,DK Pace,,99,1,2,0,,, +dkong,dkongbcc,DK Barrel Control,DK Barrel Control,99,1,2,0,,,