Opened 12 years ago

Closed 12 years ago

Last modified 13 months ago

#8737 closed patch (outdated)

TOOLS: Fixes to let them build on AmigaOS4

Reported by: (none) Owned by: fingolfin
Priority: normal Component: Port: AmigaOS4
Keywords: Cc:
Game:

Description

Mostly typedef clashes and one wrong size(?)

Index: scummvm_tools/compress_scumm_bun.cpp

--- scummvm_tools/compress_scumm_bun.cpp (revision 29335)
+++ scummvm_tools/compress_scumm_bun.cpp (working copy)
@@ -763,7 +763,7 @@

typedef struct { int offset, size, codec; } CompTable;

-byte *decompressBundleSound(int index, FILE *input, int32 &finalSize) {
+byte *decompressBundleSound(int index, FILE *input, int &finalSize) {
byte compOutput[0x2000];
int i;

Index: scummvm_tools/extract_mm_nes.c

--- scummvm_tools/extract_mm_nes.c (revision 29335)
+++ scummvm_tools/extract_mm_nes.c (working copy)
@@ -23,7 +23,12 @@
#include "util.h"
#include <stdarg.h>

+#ifdef __amigaos4__
+#include <exec/types.h>
+#include <stdlib.h>
+#else
typedef int BOOL;
+#endif
#define TRUE 1
#define FALSE 0

Index: scummvm_tools/util.h

--- scummvm_tools/util.h (revision 29335)
+++ scummvm_tools/util.h (working copy)
@@ -47,10 +47,16 @@
typedef unsigned char byte;
typedef unsigned char uint8;
typedef unsigned short uint16;
-typedef unsigned int uint32;
typedef signed char int8;
typedef signed short int16;
+
+#ifdef __amigaos4__
+#include <exec/types.h>
+#include <stdlib.h>
+#else
+typedef unsigned int uint32;
typedef signed int int32;
+#endif

#if !defined(__cplusplus)
typedef uint8 bool;
Index: scummvm_tools/extract_zak_c64.c
===================================================================
--- scummvm_tools/extract_zak_c64.c (revision 29335)
+++ scummvm_tools/extract_zak_c64.c (working copy)
@@ -23,7 +23,12 @@
#include "util.h"
#include <stdarg.h>

+#ifdef __amigaos4__
+#include <exec/types.h>
+#include <stdlib.h>
+#else
typedef int BOOL;
+#endif
#define TRUE 1
#define FALSE 0

Index: scummvm_tools/extract_loom_tg16.c

--- scummvm_tools/extract_loom_tg16.c (revision 29335)
+++ scummvm_tools/extract_loom_tg16.c (working copy)
@@ -26,7 +26,12 @@
#include <string.h>
#include "util.h"

+#ifdef __amigaos4__
+#include <exec/types.h>
+#include <stdlib.h>
+#else
typedef int BOOL;
+#endif
#define TRUE 1
#define FALSE 0

Index: scummvm_tools/extract_mm_c64.c

--- scummvm_tools/extract_mm_c64.c (revision 29335)
+++ scummvm_tools/extract_mm_c64.c (working copy)
@@ -23,7 +23,12 @@
#include "util.h"
#include <stdarg.h>

+#ifdef __amigaos4__
+#include <exec/types.h>
+#include <stdlib.h>
+#else
typedef int BOOL;
+#endif
#define TRUE 1
#define FALSE 0

Index: scummvm_tools/extract_mm_apple.c

--- scummvm_tools/extract_mm_apple.c (revision 29335)
+++ scummvm_tools/extract_mm_apple.c (working copy)
@@ -23,7 +23,12 @@
#include "util.h"
#include <stdarg.h>

+#ifdef __amigaos4__
+#include <exec/types.h>
+#include <stdlib.h>
+#else
typedef int BOOL;
+#endif
#define TRUE 1
#define FALSE 0

Ticket imported from: #1823349. Ticket imported from: patches/842.

Change History (11)

comment:1 by bluegr, 12 years ago

Initial comments:
* compress_scumm_bun.cpp: why did you change int32 to int? You removed the uint32 typedef from util.h, but why was this necessary in the first place?
* util.h: I don't understand why the uint32 typedef is problematic in Amiga
* extract_mm_nes.c, extract_zak_c64.c, extract_loom_tg16.c, extract_mm_c64.c, extract_mm_apple.c: they all look ok to me (your changes are Amiga specific)

comment:2 by (none), 12 years ago

[quote]
* compress_scumm_bun.cpp: why did you change int32 to int? You removed the
uint32 typedef from util.h, but why was this necessary in the first place?
[/quote]

compress_scumm_bun.cpp: In function 'int main(int, char**)':
compress_scumm_bun.cpp:1218: error: invalid initialization of reference of type 'int32&' from expression of type 'int'
compress_scumm_bun.cpp:766: error: in passing argument 3 of 'byte* decompressBundleSound(int, FILE*, int32&)'

I'm sure there is a far better solution for this, but
changing it to int worked for me, i know it might break on
other platforms, but i'm a noob and need help :-)

[quote]
* util.h: I don't understand why the uint32 typedef is problematic in
Amiga
[/quote]

Neither do i :-)
Maybe the parts from amiga specific types.h explains?

[quote]
/* Whenever possible, use these typesdefs instead of the traditional
* BYTE/WORD/LONG. These are absolutely unambigious when it comes to
* datatype and number of bits
*/

typedef unsigned char uint8;
typedef signed char int8;

typedef unsigned short uint16;
typedef signed short int16;

typedef unsigned long uint32;
typedef signed long int32;

and

typedef uint8 UBYTE;
typedef int8 BYTE;
typedef uint8 BYTEBITS;
typedef uint16 UWORD;
typedef int16 WORD;
typedef uint16 WORDBITS;
typedef uint32 ULONG;
typedef int32 LONG;
typedef uint32 LONGBITS;
typedef uint16 RPTR;

comment:3 by fingolfin, 12 years ago

Please, always *attach* this as a proper patch file. Posting patches in a comment makes them very difficult to apply and review properly.

comment:4 by fingolfin, 12 years ago

The changes here are now partially obsolete/outdated, as I just removed the unused "BOOL" typedef.

comment:5 by (none), 12 years ago

@fingolfin

Terribly sorry, will think of it the next time :-/

Thanks for the fixes so far

comment:6 by fingolfin, 12 years ago

Is there anything left here which has not yet been covered in the repository? If so, please attach it as a patch.

comment:7 by fingolfin, 12 years ago

Owner: set to fingolfin
Status: newpending

comment:8 by (none), 12 years ago

Sorry, was away at work

No building errors left, thanks a lot :-)

comment:9 by (none), 12 years ago

Status: pendingnew

comment:10 by fingolfin, 12 years ago

Resolution: outdated
Status: newclosed

comment:11 by digitall, 13 months ago

Component: Port: AmigaOS4
Note: See TracTickets for help on using tickets.