News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_roudoudou

ACE for Linux,Mac, Windows

Started by roudoudou, 06:30, 27 October 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fessor

Is there a limitation in the debugger regarding the number of symbols it can display or process? From an unknown point onwards it does not resolve the symbol data.
2526 symbols are passed in the .rasm file
You cannot view this attachment.

roudoudou

Quote from: Fessor on 07:16, 09 June 24Is there a limitation in the debugger regarding the number of symbols it can display or process? From an unknown point onwards it does not resolve the symbol data.
2526 symbols are passed in the .rasm file
You cannot view this attachment.
no limitation, so i guess your symbols are not located in the same memory space
in "precise location" mode, labels must be to the exact location they were assembled
you can change the "Strictly respect label location with RASM symbol file" in the Miscellaneous options

that said, sometimes it's not possible to use symbol where they were declared because you want to copy a code from ROM to RAM
so i added some label options to RASM => http://rasm.wikidot.com/label:labels

Export labels
Since version 2.1, rasm is exporting chunks and special symbol files to work with the ACE emulator.
Exported labels are precisely positioned in the emulator (in RAM if declared in RAM, in ROM if declared in ROM).
However, you may need to relocate code (necessarily in RAM) from ROM.
It is therefore possible to declare labels as local (global by default) when they are relocated, in order to see them in the emulator
LABEL LOCAL ; all following labels will be considered in the 64K addressable space
LABEL GLOBAL; all the following labels will be considered at their compilation location

When assembling single files or from temporary spaces (using BANK without memory specificity), you can assign the current temporary space a precise location for the emulator
LOCALISATION RAM,4 ; all space labels will be assigned on page 4 of RAM
LOCALISATION ROM,LOWER ; all space labels will be assigned on Lower ROM
LOCALISATION ROM,14 ; all space labels will be assigned on ROM 14


i cant say more without seing the definition of your missing symbols in the rasm file (it's a text file), tell me if you have still trouble (and give me more informations)

Fessor

I use a single large assembler file in which I have several ORGs to assemble routines in different areas. At first I simply defined "LABEL LOCAL" in the header of the file because the code only assembles over the normal 64k address range. I had not expected or thought that the ORG statements would limit "LABEL LOCAL". I had relied too much on the description of the 64k address range.

With "LABEL GLOBAL" all labels are now displayed.

roudoudou

Quote from: Fessor on 11:36, 09 June 24I use a single large assembler file in which I have several ORGs to assemble routines in different areas. At first I simply defined "LABEL LOCAL" in the header of the file because the code only assembles over the normal 64k address range. I had not expected or thought that the ORG statements would limit "LABEL LOCAL". I had relied too much on the description of the 64k address range.

With "LABEL GLOBAL" all labels are now displayed.
i read again the documentation, i think i switch the definitions, ooops :picard:

ago

Is there a full screen option???

I cannot find it ???

roudoudou

Quote from: ago on 13:37, 11 June 24Is there a full screen option???

I cannot find it ???


nope, do not want to spend my time on windows troubles (+there is kind of impossibility to intercept special keys without OS specific code => again, 3x the dev time)

ago

Quote from: roudoudou on 14:50, 11 June 24
Quote from: ago on 13:37, 11 June 24Is there a full screen option???

I cannot find it ???


nope, do not want to spend my time on windows troubles (+there is kind of impossibility to intercept special keys without OS specific code => again, 3x the dev time)

Cool, I just wanted to double check. I wasn't aware of this kind of windows troubles, never had to deal with it, so I learned something new today :laugh: . Thanks for your work on this, really nice emu!!

Fessor

A small wish list:
Graphics Explorer:
If you select in Econding: Screen that the setting of R12/R13 is used for the address instead of always using 0xc000 as standard. (And perhaps also a switch that allows the graphical representation and address to dynamically follow R12/R13 so that you can always see what the crtc is pointing to)

Tracer/Disassembling Explorer and RASM.
Winape allows you to mark address ranges as data ranges and then displays the corresponding bytes not as opcodes but as data directives. It would be nice if ACE could do that too. On the one hand, manual marking in ACE but, as an extension and improvement of the interaction with RASM, with -rasm, the data addresses and types of the declarations are passed in the .rasmfile so you can get an almost 1:1 representation of the source code in ace.

roudoudou

Quote from: Fessor on 23:01, 11 June 24A small wish list:
Graphics Explorer:
If you select in Econding: Screen that the setting of R12/R13 is used for the address instead of always using 0xc000 as standard. (And perhaps also a switch that allows the graphical representation and address to dynamically follow R12/R13 so that you can always see what the crtc is pointing to)

Tracer/Disassembling Explorer and RASM.
Winape allows you to mark address ranges as data ranges and then displays the corresponding bytes not as opcodes but as data directives. It would be nice if ACE could do that too. On the one hand, manual marking in ACE but, as an extension and improvement of the interaction with RASM, with -rasm, the data addresses and types of the declarations are passed in the .rasmfile so you can get an almost 1:1 representation of the source code in ace.
nice suggestions, thanks

about the 1:1 representation, i thought about this a long time ago but this will need a bigger window or slides. Do not want that in trace but it can be an option for disassembling window

roudoudou

it's coming...

but it will need more than that to fully explain how to use it



Fessor

I'm very curious. These functions could really help me with my project right now.

Prodatron

I wonder if a performance profiler feature could be added to the debugger.

In the most simple way...
- you would just mark a code area (start, end, banking config)
- define a breakpoint
- reset two cycle counters and run the emulation

The first cycle counter is always increased, the second cycle counter is only increased inside the marked code area.

When you reach the breakpoint, you can check both cycle counters and have an understanding how much % of the total CPU time was used inside the marked code.
That would be great to identify, for which routines an optimization would make sense or not, if you have a more complex program flow.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

roudoudou

Quote from: Prodatron on 12:27, 28 June 24I wonder if a performance profiler feature could be added to the debugger.
there is already a mecanism like that in the breakpoints with min and max since last breakpoint (you set breakpoints as watcher to not break) and place breakpoints at strategic locations


Prodatron


GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Joseman

Quote from: Prodatron on 12:27, 28 June 24I wonder if a performance profiler feature could be added to the debugger.

In the most simple way...
- you would just mark a code area (start, end, banking config)
- define a breakpoint
- reset two cycle counters and run the emulation

The first cycle counter is always increased, the second cycle counter is only increased inside the marked code area.

When you reach the breakpoint, you can check both cycle counters and have an understanding how much % of the total CPU time was used inside the marked code.
That would be great to identify, for which routines an optimization would make sense or not, if you have a more complex program flow.
Great ideas and top features!!

lenerd04

just discovered your emu, works really nice. merci bcp Roudoudou !

is there any particular type of joystick or preferably gamepad you would recommend for a Macbook (M2 chip, Sonoma 14.5)? I tried using a classic Nintendo-like gamepad (like this one). ACE recognises it well as "USB gamepad" but only the yellow button works (as fire). All buttons seem to work fine according to a gamepad testing website.

encore merci !

roudoudou

Quote from: lenerd04 on 10:45, 17 August 24just discovered your emu, works really nice. merci bcp Roudoudou !

is there any particular type of joystick or preferably gamepad you would recommend for a Macbook (M2 chip, Sonoma 14.5)? I tried using a classic Nintendo-like gamepad (like this one). ACE recognises it well as "USB gamepad" but only the yellow button works (as fire). All buttons seem to work fine according to a gamepad testing website.

encore merci !

apart from avoiding xbox controllers, everything must be run fine...

...BUT i fixed a bug with NoName controllers because SDL returns NULL pointer as name and ACE will crash with that controller

if any crash trouble, just wait the next release, soon ;D

roudoudou

tadaaaaah

=== 2024 Summer Fixes ===
- Save/Restore more parameters with RamDump/GFX Explorer windows
- Seek polling catch-up triggers earlier than expected (wip)
- Ability to see/edit/dump ASIC page in Memory Explorer
- Display current mapping in Memory Explorer when using Emulator mapping view
- bugfix crash when USB joystick has no name
- bugfix intempestive Memory Explorer or Breakpoint window when launched from a Memory Explorer
- bugfix RAM Breakpoint mask default (was 0 instead of 0x3FFF for any bank)

lenerd04

thanks for the super fast reply and action! the issue seems to remain though, except the red 'A' button seems to be active too now, on top of the yellow 'B'. the gamepad appears as "USB0 usb gamepad" in the list of joysticks.

probably not related but the keyboard option "French (Mac)" works a bit randomly - sometimes the FR keyboard is recognised, sometimes it is not (i.e. it works like a qwerty one). 

lenerd04

actually the new version keeps on "quitting unexpectedly" according to macOS, even when you simply close it via the main menu, and options (keyboard, etc.) are not saved. previous version worked fine, including FR keyboard recognition.

roudoudou

there is no keyboard recognition, that's why you have to set it in the configuration menu

if you can be more specific about the unexpected quit it may be cool (maybe an Error.log in the zip? i do not have a Mac to test)

lenerd04

sorry, I meant the keyboard still acts as a qwerty one when I set it to "French" or "French (Mac)" in the config menu. previous ACE version did not do that.

happy to send you the report I get from macOS afer closing ACE, how can I do that? I tried to insert it as "code" but the wiki interface would not let me post the message after (maybe too long?).

lenerd04

Quote from: roudoudou on 11:57, 18 August 24there is no keyboard recognition, that's why you have to set it in the configuration menu

if you can be more specific about the unexpected quit it may be cool (maybe an Error.log in the zip? i do not have a Mac to test)
I sent you the macOS error report via the wiki messaging, just let me know if you did not receive it or if you need any more info/tests.

teopl

I would like to make a nice SymbOS setup on macbook Silicon with this emulator.

So far SymbOS 4 starts fine with just drag&drop .cpr file but:

- none of the mouse plugins work except AMX which is very slow (at least when using trackpad, I did not try real mouse)
- SymbOS keeps scrolling down, I scroll up, it scrolls down :)
- I would like a quick way to write to file on macOS "host" system and that this file is visible inside SymbOS (like a shared folder between two OS)

roudoudou

Quote from: teopl on 18:59, 30 September 24I would like to make a nice SymbOS setup on macbook Silicon with this emulator.

So far SymbOS 4 starts fine with just drag&drop .cpr file but:

- none of the mouse plugins work except AMX which is very slow (at least when using trackpad, I did not try real mouse)
- SymbOS keeps scrolling down, I scroll up, it scrolls down :)
- I would like a quick way to write to file on macOS "host" system and that this file is visible inside SymbOS (like a shared folder between two OS)
in order to let the Symbiface mouse work, you need to enable RTC (it's supposed to be automatically the case). Then SymbOS will detect RTC and enable mouse :)

Powered by SMFPacks Menu Editor Mod