SkoolKit 9.0

Introduce yourself. Pimp your website, competition, event or other activity here, as long as it's Spectrum related.
Post Reply
User avatar
SkoolKid
Manic Miner
Posts: 410
Joined: Wed Nov 15, 2017 3:07 pm

SkoolKit 9.0

Post by SkoolKid »

For what it's worth in this age of immediate code availability via GitHub and the like, SkoolKit 9.0 has been released.

TL;DR version for the initiated: tap2sna.py can now load 128K games. Try it with some of the thousands of ready-made t2s files.

For the uninitiated: SkoolKit is a suite of tools that can be used to create a disassembly of a Spectrum game (or any other piece of software), in HTML form or as plain assembly language, from a single set of source files. For example, it has been used in the production of many of the fine disassemblies on this page:

https://skoolkit.ca/links/

With SkoolKit you can:
  • use sna2ctl.py to generate a control file (an attempt to identify routines and data blocks by static analysis) from a snapshot (SNA, SZX or Z80) or raw memory file
  • enable sna2ctl.py to generate a much better control file that more reliably distinguishes code from data by using a code execution map produced by an emulator
  • use sna2skool.py along with this control file to produce a disassembly of a snapshot or raw memory file
  • add annotations to this disassembly (or the control file) as you discover the purpose of each routine and data block
  • use skool2html.py to convert a disassembly into a bunch of HTML files (with annotations in place, and the operands of CALL and JP instructions converted into hyperlinks)
  • use skool2asm.py to convert a disassembly into an assembly language source file (also with annotations in place)
  • use skool2ctl.py to convert a disassembly back into a control file (with annotations retained)
  • use skool2bin.py to convert a disassembly into a raw memory file
  • use tap2sna.py to convert a TAP or TZX file into a 'pristine' Z80 snapshot
  • use snapinfo.py to analyse a snapshot or raw memory file and list the BASIC program it contains, show register values, produce a call graph, find tile graphic data, find text, or find sequences of arbitrary byte values
  • use trace.py to trace the execution of machine code in a snapshot or raw memory file
  • use tapinfo.py to analyse the blocks in a TAP or TZX file, and list the BASIC program it contains
  • use bin2tap.py to convert a snapshot or raw memory file into a TAP file
  • use bin2sna.py to convert a raw memory file into a Z80 snapshot
  • use snapmod.py to modify the register values or memory contents in a Z80 snapshot
  • use sna2img.py to convert graphic data in a disassembly, SCR file, snapshot or raw memory file into a PNG image
In an HTML disassembly produced by skool2html.py you can also:
  • use the image macros to build still and animated PNG images from graphic data
  • use the #AUDIO macro to build WAV files for sound effects and tunes
  • use the #R macro in annotations to create hyperlinks between routines and data blocks that refer to each other
  • use [Bug:*], [Fact:*] and [Poke:*] sections in a ref file to neatly render lists of bugs, trivia and POKEs on separate pages
For full details on what's new in 9.0, check the changelog.
SkoolKit - disassemble a game today
Pyskool - a remake of Skool Daze and Back to Skool
TheMartian
Microbot
Posts: 105
Joined: Wed Feb 03, 2021 5:18 am

Re: SkoolKit 9.0

Post by TheMartian »

Question:

Ubuntu DEB packages are no longer offered as a means of installation, right? I still have the 8.8 package installed, and the repository cloned, but I'm figuring out how to install it seamlessly on my Ubuntu box.
User avatar
PeterJ
Site Admin
Posts: 6930
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: SkoolKit 9.0

Post by PeterJ »

@TheMartian,

There is an Ubuntu PPA

https://launchpad.net/~rjdymond/+archive/ubuntu/ppa

The pre-release versions of 9.0 are on there, so maybe Richard will update this with the official v9?
User avatar
SkoolKid
Manic Miner
Posts: 410
Joined: Wed Nov 15, 2017 3:07 pm

Re: SkoolKit 9.0

Post by SkoolKid »

TheMartian wrote: Sat Nov 04, 2023 11:44 am Ubuntu DEB packages are no longer offered as a means of installation, right? I still have the 8.8 package installed, and the repository cloned, but I'm figuring out how to install it seamlessly on my Ubuntu box.
Yes, I stopped providing them because I doubted that anyone was actually using them. Now I know at least one person is, I'll resume the practice. :D

Packages for SkoolKit 9.0 should be here now:

https://launchpad.net/~rjdymond/+archive/ubuntu/ppa
SkoolKit - disassemble a game today
Pyskool - a remake of Skool Daze and Back to Skool
C.Born
Manic Miner
Posts: 254
Joined: Sat Dec 09, 2017 4:09 pm

Re: SkoolKit 9.0

Post by C.Born »

Hi
the two ZIP files have the same name, so my system made it into
skoolkit-9.0.zip
skoolkit-9.0(1).zip
User avatar
SkoolKid
Manic Miner
Posts: 410
Joined: Wed Nov 15, 2017 3:07 pm

Re: SkoolKit 9.0

Post by SkoolKid »

C.Born wrote: Sat Nov 04, 2023 1:36 pm Hi
the two ZIP files have the same name, so my system made it into
skoolkit-9.0.zip
skoolkit-9.0(1).zip
Where did you download those zip files from?
SkoolKit - disassemble a game today
Pyskool - a remake of Skool Daze and Back to Skool
mrcook
Drutt
Posts: 46
Joined: Tue Jun 09, 2020 7:31 pm

Re: SkoolKit 9.0

Post by mrcook »

Hi Richard, thanks for the continuing development of Skoolkit...it's a great tool! I do have a question/suggestion/request :)

Have you thought about supporting Gameboy disassembly?

It feels like just adding support (!) for parsing of the .gb header and different memory banks is needed -- easy for me to say I know!

I was recently looking over the mgbdis tool on github and although it's okay, it's control file support is very minimal, making it difficult to come close to do what Skoolkit can do!

Thanks again,
Michael
User avatar
SkoolKid
Manic Miner
Posts: 410
Joined: Wed Nov 15, 2017 3:07 pm

Re: SkoolKit 9.0

Post by SkoolKid »

mrcook wrote: Sat Nov 04, 2023 4:41 pm Have you thought about supporting Gameboy disassembly?
I can honestly say I have not! :D
It feels like just adding support (!) for parsing of the .gb header and different memory banks is needed -- easy for me to say I know!
This sounds like a job for a custom SkoolKit component. Just a snapshot reader, by the sounds of it. Like the VSF snapshot reader that's part of sk6502 (SkoolKit components for 6502 disassembly).

I don't think I would make this part of SkoolKit proper, and I'm not sure when I would get round to it, but if anyone's familiar with Python and the .gb format, I'm willing to give advice on how to go about making a .gb reader component.
SkoolKit - disassemble a game today
Pyskool - a remake of Skool Daze and Back to Skool
mrcook
Drutt
Posts: 46
Joined: Tue Jun 09, 2020 7:31 pm

Re: SkoolKit 9.0

Post by mrcook »

Thanks Richard, I almost thought about taking a look at doing a component...then I remembered how little motivation I've never had for learning Python :P

Ah well, thanks anyway.
C.Born
Manic Miner
Posts: 254
Joined: Sat Dec 09, 2017 4:09 pm

Re: SkoolKit 9.0

Post by C.Born »

SkoolKid wrote: Sat Nov 04, 2023 1:44 pm Where did you download those zip files from?
https://github.com/skoolkid/skoolkit/releases
the zips have the double name
the tars both work correct
User avatar
SkoolKid
Manic Miner
Posts: 410
Joined: Wed Nov 15, 2017 3:07 pm

Re: SkoolKit 9.0

Post by SkoolKid »

C.Born wrote: Mon Nov 06, 2023 10:24 pm https://github.com/skoolkid/skoolkit/releases
the zips have the double name
the tars both work correct
The first two files (skoolkit-9.0.tar.xz and skoolkit-9.0.zip) are the official releases, built by me. The other two 'Source code' files are copies of the repository contents, placed there automatically by GitHub. I don't think I have any control over those.
SkoolKit - disassemble a game today
Pyskool - a remake of Skool Daze and Back to Skool
User avatar
SkoolKid
Manic Miner
Posts: 410
Joined: Wed Nov 15, 2017 3:07 pm

Re: SkoolKit 9.0

Post by SkoolKid »

Not related to the latest release in particular, but if you haven't had a look at the disassembly links page in a while, you'll have missed some recent additions:

https://skoolkit.ca/links/

By the looks of it, @pobtastic and Ritchie Swann (not on this forum, to my knowledge) are set to reverse engineer the entire Spectrum games catalogue by the end of the decade. Let's give them all the moral and practical support they need!
SkoolKit - disassemble a game today
Pyskool - a remake of Skool Daze and Back to Skool
mrcook
Drutt
Posts: 46
Joined: Tue Jun 09, 2020 7:31 pm

Re: SkoolKit 9.0

Post by mrcook »

Hi Richard,

Not sure if mine counts as worth adding to that page, but I annotated Jetpac a few years back: https://github.com/mrcook/jetpac-disassembly

Of note, it was my disassembly that was the starting point for the JetPac RX release: https://highriser.itch.io/jetpacrx
User avatar
SkoolKid
Manic Miner
Posts: 410
Joined: Wed Nov 15, 2017 3:07 pm

Re: SkoolKit 9.0

Post by SkoolKid »

mrcook wrote: Tue Nov 07, 2023 5:55 pm Not sure if mine counts as worth adding to that page, but I annotated Jetpac a few years back: https://github.com/mrcook/jetpac-disassembly
Added: https://skoolkit.ca/links/

You'd get extra brownie points for publishing the HTML disassembly, but it's not a requirement. :)
SkoolKit - disassemble a game today
Pyskool - a remake of Skool Daze and Back to Skool
C.Born
Manic Miner
Posts: 254
Joined: Sat Dec 09, 2017 4:09 pm

Re: SkoolKit 9.0

Post by C.Born »

SkoolKid wrote: Mon Nov 06, 2023 11:02 pm The first two files (skoolkit-9.0.tar.xz and skoolkit-9.0.zip) are the official releases, built by me. The other two 'Source code' files are copies of the repository contents, placed there automatically by GitHub. I don't think I have any control over those.
hmm, some computers do overtime ...
SamC
Microbot
Posts: 179
Joined: Sun Sep 29, 2019 9:07 pm

Re: SkoolKit 9.0

Post by SamC »

SkoolKid wrote: Sat Nov 04, 2023 11:55 am DEB packages ... Now I know at least one person is, I'll resume the practice. :D
me too (MX Linux) 8-)
Post Reply