-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AmigaOS4 support #10
Comments
Hi @raziel- The second issue seems to be related to opening the game data files. It looks like |
Ah, ok. PROGDIR: is used as default on this platform and points to the directory the program was started. And yes, COSMO1.VOL is in the same dir as the engine binary. AmigaOS is not case sensitive, it uses everything that is thrown at it, may it be upper or lower case. I can't test anything in code for the next two weeks due to being tangled up in work, but I'll try when I get back home. Thanks for helping out |
Cool,
It's in |
Ah, right. I'll try to remove it and see what happens next. Thank you |
So, i tried to change it to I need to add that i'm a noob when it comes to coding. |
I think it needs to look more like this.
|
That did it, thanks a lot :-) Game runs fine (window) Are you planning fullscreen support and BE sound/music? |
Hi Raziel and yuv422 I try to built it to MorphOS and i just add to activate sound/music :
And music and sound working fine on MorphOS, I think it's same on AmigaOS. |
I get a crash on starting the adventure with this change... Register dump: FPR (Floating Point Registers, NaN = Not a Number): FPSCR (Floating Point Status and Control Register): 0x82004000 SPRs (Special Purpose Registers): 680x0 emulated registers: Symbol info: Stack trace: PPC disassembly: |
arrfff no chance.... work fine here :-( Missing somes features : joystick support, switch fullscreen/window, window resizable. I pre-release version for MorphOS (with shareware version) |
Thank you for the help, will bother some AmigaOS4 devs :-D |
You can find my source : https://github.com/BeWorld2018/cosmo-engine I add somes features... (window resizable, F12 switch fwindow/fullscreen, very alpha support of SDL_GameController) |
Hi, using BeWorld github-sources and some small changes I can compile it under amigaos4. THXALOT BeWorld https://www.amigans.net/modules/xforum/viewtopic.php?post_id=119743#forumpost119743 |
Hi Eric,
not sure if you want to, since it probably means some sort of adaptation/rewriting, but...
I tried to port your engine to AmigaOS4, but ran into some problems.
First there were compilation issues (since cmake doesn´t work on my platform, so i had to write my own makefile (attached). Luckily your cmake file is very clean and easy to adapt):
src/player.h:5:14: error: 'sint16' does not name a type; did you mean 'int'?
extern const sint16 player_x_offset_tbl[];
^~~~~~
int
src/player.h:6:14: error: 'sint16' does not name a type; did you mean 'int'?
extern const sint16 player_y_offset_tbl[];
^~~~~~
int
src/player.h:29:8: error: 'uint8' does not name a type; did you mean 'int'?
extern uint8 health;
^~~~~
int
src/player.h:30:8: error: 'uint8' does not name a type; did you mean 'int'?
extern uint8 num_health_bars;
^~~~~
int
src/player.h:32:8: error: 'uint16' does not name a type; did you mean 'int'?
extern uint16 num_bombs;
^~~~~~
int
src/player.h:33:8: error: 'uint16' does not name a type; did you mean 'int'?
extern uint16 has_had_bomb_flag;
^~~~~~
int
src/player.h:39:8: error: 'uint8' does not name a type; did you mean 'int'?
extern uint8 player_in_pneumatic_tube_flag;
^~~~~
int
src/player.h:46:8: error: 'uint8' does not name a type; did you mean 'int'?
extern uint8 show_monster_attack_hint;
^~~~~
int
src/player.h:48:8: error: 'uint8' does not name a type; did you mean 'int'?
extern uint8 word_28BEA;
^~~~~
int
src/player.h:73:28: error: variable or field 'display_player_sprite' declared void
void display_player_sprite(uint8 frame_num, int x_pos, int y_pos, int tile_display_func_index);
^~~~~
src/player.h:73:28: error: 'uint8' was not declared in this scope
src/player.h:73:28: note: suggested alternative: 'int'
void display_player_sprite(uint8 frame_num, int x_pos, int y_pos, int tile_display_func_index);
^~~~~
int
src/player.h:73:45: error: expected primary-expression before 'int'
void display_player_sprite(uint8 frame_num, int x_pos, int y_pos, int tile_display_func_index);
^~~
src/player.h:73:56: error: expected primary-expression before 'int'
void display_player_sprite(uint8 frame_num, int x_pos, int y_pos, int tile_display_func_index);
^~~
src/player.h:73:67: error: expected primary-expression before 'int'
void display_player_sprite(uint8 frame_num, int x_pos, int y_pos, int tile_display_func_index);
^~~
src/player.h:84:26: error: variable or field 'player_add_to_score' declared void
void player_add_to_score(uint32 amount_to_add_low);
^~~~~~
src/player.h:84:26: error: 'uint32' was not declared in this scope
src/player.h:84:26: note: suggested alternative: 'int'
void player_add_to_score(uint32 amount_to_add_low);
^~~~~~
int
src/player.h:88:110: error: 'uint8' has not been declared
void push_player_around(int push_direction, int push_anim_duration, int push_duration, int player_frame_num, uint8 dont_push_while_jumping_flag, int check_for_blocking_flag);
Those errors were was easily fixed by adding
#ifdef amigaos4
#include "files/defines.h"
#endif
to src/player.h, line 5
After the binary built i got more errors on start of the engine.
I cannot fix them by myself, too much of a noob i´m afraid, but i´d love to test anything you throw at me :-)
Here are the errors on start:
audio_init(): opened=1 times frequency=22050Hz format=S16MSB channel=1
ERROR: AUDIO_S16LSB or AUDIO_F32LSB required. found 0x9010
Failed opening: PROGDIR:/COSMO1.VOL
Error opening COSMO1.VOL
assertion "open_vol_file(vol_filename, &vol_file)" failed: file "src/files/vol.c", line 111
***Command 'cosmo_amigaos4' returned with unfreed signals 80000000!
I have to add that i´m using SDL2 on a Big Endian PPC-based machine
Makefile.amigaos4.txt
The text was updated successfully, but these errors were encountered: