Skip to content
Snippets Groups Projects
Select Git revision
  • c2e71ec7604fa262e65c75d89e2d4e4ae25112fe
  • master default
  • wip-slh-dsa-sha2-128s
  • master-updates
  • release-3.10-fixes
  • getopt-prototype
  • fix-bcrypt-warning
  • refactor-hmac
  • wip-use-alignas
  • trim-sha3-context
  • fix-gitlab-ci
  • check-fat-emulate
  • delete-digest_func-size
  • slh-dsa-shake-128f-nettle
  • slh-dsa-shake-128s-nettle
  • slh-dsa-shake-128s
  • delete-openpgp
  • ppc64-sha512
  • delete-md5-compat
  • cleanup-hmac-tests
  • ppc64-sha256
  • nettle_3.10.2_release_20250626
  • nettle_3.10.1_release_20241230
  • nettle_3.10_release_20240616
  • nettle_3.10rc2
  • nettle_3.10rc1
  • nettle_3.9.1_release_20230601
  • nettle_3.9_release_20230514
  • nettle_3.8.1_release_20220727
  • nettle_3.8_release_20220602
  • nettle_3.7.3_release_20210606
  • nettle_3.7.2_release_20210321
  • nettle_3.7.1_release_20210217
  • nettle_3.7_release_20210104
  • nettle_3.7rc1
  • nettle_3.6_release_20200429
  • nettle_3.6rc3
  • nettle_3.6rc2
  • nettle_3.6rc1
  • nettle_3.5.1_release_20190627
  • nettle_3.5_release_20190626
41 results

aes.asm

Blame
  • parse-map.scm 3.10 KiB
    (use-modules (system foreign)
                 (ice-9 binary-ports)
                 (ice-9 iconv)
                 (rnrs bytevectors)
                 (srfi srfi-1)
                 (srfi srfi-4)
                 (srfi srfi-9)
                 (srfi srfi-9 gnu)
                 )
    
    
    ;;; sizeof:
    ;;; long => 4
    ;;; int  => 2
    
    (begin
      (define long int32)
      (define unsigned uint16)
      (define int int16)
      (define char uint8)
    
      (define NUMMAPS 60)
      (define MAPPLANES 2))
    
    
    (chdir "/home/hugo/wolf3d/WOLF3D-D/")
    
    (define mapfiletype
      (list unsigned      ; RLEWtag
            (make-list 100 long)  ; headeroffsets
            ))
    
    (define-record-type <maphead>
      (make-maphead rlew headeroffsets)
      maphead?
      (rlew get-rlew)
      (headeroffsets get-offsets))
    
    (set-record-type-printer!
     <maphead>
     (lambda (r p)
       (format p "#<<maphead> RLEW: #x~:@(~x~), offsets: (~{#x~:@(~4,'0x~)~^ ~})>"
               (get-rlew r)
               (take-while (negate zero?) (get-offsets r)))))
    
    
    (define maphead
      (call-with-input-file "MAPHEAD.WL1"
        (lambda (port)
          (make-maphead (u16vector-ref (get-bytevector-n port 2) 0)
                        (u32vector->list (get-bytevector-all port))))
        #:binary #t))
    
    (= #xABCD (get-rlew maphead))
    
    (define maptype
      (list (make-list 3 long)              ; planestart
            (make-list 3 unsigned)          ; planelength
            unsigned unsigned               ; width, height
            (make-list 16 char)))           ; name
    
    
    (define-record-type <maptype>
      (make-maptype planestart planelength width height name)
      maptype?
      (planestart  get-planestart)
      (planelength get-planelength)
      (width       get-width)
      (height      get-height)
      (name        get-name))
    
    ;;; ID_CA.C, 1000
    (define maps
     (call-with-input-file "GAMEMAPS.WL1"
       (lambda (port)
         (filter-map
          (lambda (pos)
            (if (= pos 0) #f
                (begin
                  (seek port pos SEEK_SET)
                  (make-maptype
                   (u32vector->list         ; planestart
                    (get-bytevector-n port (* 3 (sizeof long))))
                   (u16vector->list         ; planelength
                    (get-bytevector-n port (* 3 (sizeof unsigned))))
                   (u16vector-ref (get-bytevector-n port (sizeof unsigned)) 0) ; width
                   (u16vector-ref (get-bytevector-n port (sizeof unsigned)) 0) ; height
                   (string-filter           ; name
                    (bytevector->string (get-bytevector-n port 16) "ASCII")
                    (lambda (c) (not (eq? c #\nul))))
                   ;; (bytevector->string (get-bytevector-n port  4) "ASCII") ; "!ID!"
                   ))))
          (get-offsets maphead)))
       #:binary #t))
    
    (let ((m (car maps)))
     (map (lambda (plane)
            (let ((pos (list-ref (get-planestart m) plane))
                  (compressed (list-ref (get-planelength m) plane)))
              (call-with-input-file "GAMEMAPS.WL1"
                (lambda (port)
                  (seek port pos SEEK_SET)
                  (let ((source (get-bytevector-n port compressed)))
                    (let ((expanded (bytevector->int source)))
                      ;; ID_CA.C, 1474
                      ;; aaaaahhhhhh
                      )
                    ))
                #:binary #t)))
          (iota MAPPLANES)))