{"id":16842601,"url":"https://github.com/rofl0r/gfxrip","last_synced_at":"2025-10-17T16:15:18.881Z","repository":{"id":19144798,"uuid":"22375067","full_name":"rofl0r/GfxRip","owner":"rofl0r","description":"GfxRip 1.0.8 patched to compile on Linux (requires liballegro4)","archived":false,"fork":false,"pushed_at":"2014-07-31T22:21:43.000Z","size":188,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-24T12:12:32.309Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rofl0r.png","metadata":{"files":{"readme":"readme.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-29T09:42:36.000Z","updated_at":"2025-03-17T12:53:40.000Z","dependencies_parsed_at":"2022-08-01T02:48:55.325Z","dependency_job_id":null,"html_url":"https://github.com/rofl0r/GfxRip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2FGfxRip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2FGfxRip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2FGfxRip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2FGfxRip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rofl0r","download_url":"https://codeload.github.com/rofl0r/GfxRip/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225712,"owners_count":21068078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T12:47:05.901Z","updated_at":"2025-10-17T16:15:13.826Z","avatar_url":"https://github.com/rofl0r.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"   Graphics Ripper   by TC\r\n===============================\r\nv 1.08  Released on 06.jul.2007\r\n-------------------------------\r\n    email: tomcat@sgn.net\r\n-------------------------------\r\nNew in 1.08: Palette searching now uses WinUAE way of setting values\r\nNew in 1.07: Added CTRL + INSERT to copy the first image to ClipBoard\r\nNew in 1.06: Added R/F + SHIFT to quickly add/remove Skip bytes\r\n             Added P + SHIFT to do an incremental Save\r\nNew in 1.05: Added two new Palette search modes - WinUAE Snapshot direct\r\n             Copper List searching for ECS and AGA palettes. Will set the\r\n             palette to the one that was active when the UNCOMPRESSED\r\n             Snapshot (SaveState) was taken in WinUAE.\r\nNew in 1.04: Key 'U' turns on/off a zoom window at the bottom/right\r\n             corner. Just a quick 'fix ... for EAB people ;-)\r\n\r\nNOTE: You must know atleast some basics about how amiga displays the\r\n      pictures on the screen! Since the program like this cannot be\r\n      automatic at all you are on your own ! The only automatic thing\r\n      is palette searching (and even that fails on some occasions).\r\n      There is a little guide for those who don't exactly know what\r\n      they are doing... hope that one helps !\r\n\r\nQ/A                - X Size by 8 pixels\r\nW/S                - Y Size by 1 pixel\r\nW/S + SHIFT        - Y Size by 8 pixels\r\nE/D                - Bits (Number of colors)\r\nR/F                - Skip Bytes between pictures or bitplanes\r\nR/F + SHIFT        - Skip Bytes Faster (by 8 bytes)\r\nLEFT/RIGHT         - Picture Left/Right by 8 pixels (Offset by 1 byte)\r\nUP/DOWN            - Picture Up/Down by 1 line (Offset by X Size/8)\r\nUP/DOWN + SHIFT    - Picture Up/Down by 8 lines (Offset by X Size)\r\nLEFT/RIGHT + SHIFT - Next/Previous Picture (Offset by X Size * Y Size)\r\nG                  - Set Offset\r\nH                  - Set Skip Value\r\nX                  - Set Skip Mode (P - Pictures , B - Bitplanes)\r\nP                  - Save picture(s)\r\nP + SHIFT          - Save picture(s) with Auto-Incremental Name\r\nL                  - Search for Amiga Palette (Press again for more)\r\nZ                  - Palette search mode (look below for description)\r\nK                  - Revert to standard Palette\r\nJ                  - Revert to last found Amiga palette\r\nB                  - Set colour 0 to Magenta (255,0,255) - Transparent\r\nN                  - Normal or Reverse order of bitplanes\r\n0-7                - Select which picture goes into which bitplane\r\n0-7 + SHIFT        - Same as above only in reverse direction\r\nM                  - Bitplane Mode , see below !\r\nC                  - Get Colour palette from a file\r\nU                  - Turns on/off a Zoom window on the bottom/right corner\r\nESC                - Go out\r\nCTRL + INSERT      - Copy the first image to Clipboard\r\n\r\nCommand Line Arguments:\r\n-----------------------\r\nOnly one - Name of the file you want to process. If none is given then\r\na file selector will pop up where you can select the file.\r\n\r\nSave Pictures:\r\n--------------\r\nWill save into current directory.\r\nYou can save any number of pictures to this filename. Instead of\r\nnumber of pictures you specify how many of them will fit into X and\r\nY direction. The actual number of saved pictures is X*Y (ofcourse).\r\nAlso you can specify the direction in which the pictures will be\r\nput into the file. The left-\u003eright direction is the same as you see\r\nthem on the screen. The up-\u003edown will do the opposite.\r\n\r\nBitplane Mode:\r\n--------------\r\nAM = Amiga standard : Each bitplane is in its own picture,\r\nST = ST standard :    Same picture holds all bitplanes - each other line\r\n                      is a new bitplane - some tiles are in this format)\r\nSP = Amiga Sprite :   This is a special mode to rip the AMIGA format\r\n                      sprites in 16 colours (4 bitplanes). The sprites are\r\n                      always 16 pixels wide (X Size) and can be any Y size.\r\n                      You can spot them by seeing two bitmaps with 2\r\n                      pictures in each bitmap (if looking in AM mode).\r\nC+ = CPC Double :     CPC Standard Double Byte mode. One Character is one\r\n                      bitplane - the Bytes follow each other for Plane 0,1.\r\n                      (Head Over Heels, Batman)\r\nC- = CPC Single :     CPC Standard Single Byte mode. One Character holds\r\n                      BOTH bitplanes (4 pixels per Byte). This is used in\r\n                      many games. Sometimes Bitplanes are mirrored.\r\n                      (Amaurote, Ultimate games, etc.)\r\nPalette Search:\r\n---------------\r\nBy pressing this button the file is searched for a possible copperlist.\r\nBu default the Mode E is selected which basically extracts the ECS\r\npalette from the UAE SaveState snapshot. If the palette was not found in\r\nthis mode then you will have to use one of the other three modes.\r\n\r\nThere are four palette search modes:\r\n\r\nE = ECS UAE SaveState - The DEFAULT mode : the palette is extracted from the\r\n    UAE SaveState snapshot (if found). ECS (upto 64 colours) only !\r\nA = AGA UAE SaveState - the palette is extracted from the UAE SaveState\r\n    snapshot (if found). AGA colours (upto 256) are extracted !\r\nS = Simple - Doesn't find so many palettes, and it is fast, searches whole\r\n    memory for possible palette entries (2 possible entries, always in\r\n    sequence).\r\nX = Advanced - The copperlist is searched in a way that when 4 possible\r\n    colour entries (not needed to be in sequence) are found it is reported\r\n    as a valid palette.\r\n\r\nMake sure you save the Snapshots (SaveStates) as UNCOMPRESSED in WinUAE !!!\r\n\r\nIf you want to set colour 0 to allegro standard transparent then press 'B' !\r\n\r\nBitplane Order:\r\n---------------\r\nNormal bitplane order has first picture for bit 0, Reverse bitplane order\r\nhas last picture for bit 0. You can also press numbers 0-7 on your\r\nkeyboard to have a totally manual order of bitplanes (press it with\r\nSHIFT and you will decrease picture number of that bitplane) !\r\n\r\nSkip Mode:\r\n----------\r\nIf the skip mode is 'P' it will skip number of bytes between each picture.\r\nAll bitplanes follow each other in this mode. If the skip mode is set to\r\n'B' it will skip a number of bytes between each bitplane for the picture.\r\n\r\nA bit of help if you can't start with it:\r\n-----------------------------------------\r\nUse amiga memory dumps which can be done with WinUAE (Misc section).\r\nThey can be a bit big, since they are uncompressed, but they are exactly\r\nwhat you need !\r\n\r\nThe main thing is that you don't set the Bitplanes in the beginning -\r\nfirst you find the pictures in 2 colour mode and after that you fiddle\r\nwith the bitplanes. \r\n\r\nThe other thing is that you must have a sense of what is a bitmap. If\r\nyou think that tiles are 16 pixels wide that almost never means that \r\nthey are stored like that in the memory, infact they are mostly stored \r\nin some totally bogus width. \r\nFor this reason it is vital that you can \"SPOT\" the bitmap in any \r\nX-size... this can only be done with doing this thing a lot. But \r\nnormally you can spot it when diagonal lines in the bitmap start \r\nappering. But if you don't know what i am talking about then it is best \r\nto put your X- Size (with Q/A) keys to some normal value for amiga \r\ngraphics - like 320 for example. Set the Y-Size to 200 or so, so that \r\nyou can go quickly through the memory - with SHIFT left/right arrows. \r\n\r\nNow when you spot something you *think* might be tiles or bitmap or \r\nsomething then use thr Q/A keys to alter the X-Size and then it will \r\nshow up (probably - again you need practice for this to work ).\r\n\r\nNow you got your X-size down you have to adjust the Y-Size and \r\nposition (size with W/S and position with UP/DOWN (and with SHIFT)) ... \r\nwhen you have done that you have it mostly done....\r\n\r\nNow you can see the picture on the screen and bitmaps are aligned one \r\nnext to each other. Sometimes there is some rubbish between them and \r\nhere you can use the R/F keys to adjust skip bytes between bitmaps.\r\n\r\nNow you can select number of bitplanes with E/D keys... when the \r\npicture comes up in desired number of bitplanes (you will see when \r\nthe rubbish starts to appear - then it is too many ;-) ) - after \r\nthat you can start searching for the pallete - first use simple mode \r\n(normally it works) and after that the advanced if the simple mode \r\ndidn't work. Sometimes you cannot find the pallete.\r\n\r\nOK, in about half games the tiles/sprites are stored separately and \r\nin the other half the tiles/sprites are on the same bitmap (which is \r\nmuch bigger) - if they are stored separately then you can select how \r\nmany tiles you want to save at once in your file (and how many in x/y \r\ndirection).\r\n\r\nI think this should explain the most of the inner workings of the \r\ntool... as I said, since it is fully manual you must have some \r\npractice to \"spot\" the bitmap when it doesn't have the right X-size.\r\n\r\nAnd then there are other things, like interleaved bitmaps (i.e. ST \r\ntype of bitmaps) where each other bitmap is in each other line... and\r\nthe Amiga format sprites, but this is advanced already (look above) ;-)\r\n\r\n\r\nHave fun with this one !\r\n\r\nTC","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frofl0r%2Fgfxrip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frofl0r%2Fgfxrip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frofl0r%2Fgfxrip/lists"}