![]() |
![]() |
#41 | |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,453
|
Quote:
thanks. Can you explicit the crashes? and if it crashes because of fullscreen/window then it's not really a problem with the game. |
|
![]() |
![]() |
#42 |
Saberman
Join Date: Dec 2016
Location: Kielce/Poland
Posts: 343
|
Gameplay:
[ Show youtube player ]
|
![]() |
![]() |
#43 | |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,125
|
Quote:
Too bad that most players dont created Coredump reports (often only text report is enough) when tested game crashes. For me fullscreen/window crash can be related to game too, especially if game trashes memory or registers, but maybe Im wrong. |
|
![]() |
![]() |
#44 |
Retro Freak
Join Date: Nov 2001
Location: Slovenia
Age: 51
Posts: 1,708
|
VERY nice
![]() One question: How about 2nd button to rotate anti-clockwise ? ![]() |
![]() |
![]() |
#45 |
Ex nihilo nihil
Join Date: Oct 2017
Location: CH
Posts: 5,148
|
It's funny as the initials I used to use to put my name in the highscore table while playing on arcade halls are present in this conversion
![]() |
![]() |
![]() |
#46 | |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,453
|
Quote:
Good idea, but that is not that easy to code because of the special corner case of shape against the wall. Nice suggestion though. About the crashes I think I may have an idea, stay tuned ![]() |
|
![]() |
![]() |
#47 |
Registered User
Join Date: Aug 2017
Location: Greece
Posts: 152
|
An old favorite of my new! I've spent quite some quarters in that one!
From the videos I watched you've made some great progress already! Simply amazing! |
![]() |
![]() |
#48 |
Registered User
Join Date: Dec 2016
Location: Italy
Posts: 795
|
Here a GlowIcon:
|
![]() |
![]() |
#49 | ||
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,453
|
thanks for the icon!
Quote:
Quote:
Last edited by jotd; 13 December 2023 at 22:17. |
||
![]() |
![]() |
#50 |
Registered User
Join Date: Aug 2011
Location: Omnicorp
Age: 45
Posts: 6,031
|
I didn't think it was something you were after seeing its so early alpha.. I'll see what I can do when I play test it again
|
![]() |
![]() |
#51 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,453
|
actually the game is pretty complete except for sound and a few extra features like highscore save & better pokey random.
|
![]() |
![]() |
#52 |
Registered User
Join Date: Aug 2011
Location: Omnicorp
Age: 45
Posts: 6,031
|
|
![]() |
![]() |
#53 |
Registered User
Join Date: May 2001
Location: ?
Posts: 19,665
|
You've made my dream come true, JOTD
|
![]() |
![]() |
#54 | |
Zone Friend
Join Date: Mar 2004
Location: Middle Earth
Age: 40
Posts: 2,130
|
Quote:
![]() So you just go off the MAME header find the code ROM and disassemble it and make sure the RAM Addresses which the ROM tries to access is mapped correctly? Is this where WHD comes in with mapping the low RAM address space? |
|
![]() |
![]() |
#55 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,453
|
no, it's not like that. I'm managing the real 64 memory like an emulator would do, with mapping of various regions. The game runs on 68020 without whdload and without using real zero page memory (which would cause other issues). I know some Z80 to 68000 converters which seem to do that to remain in the first 32k or 64k but not here.
Depending on the address (ram, rom, bank, eeprom) the program adds the proper offset. It can detect wrong addresses too (video & palette must be specially processed so writes have a direct effect). Game also uses a slapstic AKA bank selector, so the address converter needs to know which bank is active. I'm really amazed that it runs great with so little reverse engineering by my end. Code:
* < A0: offset * flags preserved get_address: PUSH_SR cmp.w #0x1000,a0 bcc.b 0f * RAM add.l #game_ram,a0 POP_SR rts 0: * above 0x1000 cmp.w #0x2100,a0 bcc.b 0f lea address_1000_20FF_loaded_message(pc),a1 jbsr osd_break POP_SR illegal 0: * above 0x2100 cmp.w #0x2400,a0 bcc.b 0f lea address_2100_23FF_loaded_message(pc),a1 jbsr osd_break POP_SR illegal 0: * above 0x2400 cmp.w #0x2600,a0 bcc.b 0f * EEPROM lea eeprom_2400-0x2400,a0 POP_SR rts 0: * above 0x2600 cmp.w #0x4000,a0 bcc.b 0f lea address_2600_3FFF_loaded_message(pc),a1 jbsr osd_break POP_SR illegal illegal 0: * above 0x4000: caution: compare with long!! cmp.l #0x8000,a0 bcc.b 1f * banked ROM, check which bank lea bank1_4000-0x4000,a1 tst.b current_bank bne.b 0f lea bank0_4000-0x4000,a1 0: add.l a1,a0 POP_SR rts 1: * above 0x8000: ROM add.l #rom_8000-0X8000,a0 POP_SR rts Code:
GET_ADDRESS 0x00ca | [$401e: lda $00ca] move.b (a0),d0 | [$401e: lda $00ca] Code:
.macro GET_ADDRESS offset lea \offset,a0 jbsr get_address .endm Music coding is currently giving me headaches, but I'll sort it out. Last edited by jotd; 15 December 2023 at 00:03. |
![]() |
![]() |
#56 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,125
|
I think that easiest (maybe fastest too) way to access all regions can be something like next code:
Code:
lea MemAreas,A0 moveq #bank,D0 swap D0 move.w #offset,D0 lea (A0,D0.L),A1 MemAreas ds.b $10000*Banks |
![]() |
![]() |
#57 |
Registered User
Join Date: Feb 2020
Location: Germany
Posts: 196
|
It's impressive how quickly you implemented this port.
![]() In my current port I use the following code: Code:
move.b $30B+GRD_StandardData_8000(a5),d0 ; [$0293: ld a,($830B)] lea $314+GRD_StandardData_8000(a5),a0 ; [$0296: ld hl,$8314] addq.b #1,(a0) ; [$0299: inc (hl)] sub.b (a0),d0 ; [$029a: sub (hl)] ![]() |
![]() |
![]() |
#58 |
Registered User
Join Date: Sep 2004
Location: Tacoma, WA USA
Age: 52
Posts: 1,937
|
Here is an icon I made for Tetris.
|
![]() |
![]() |
#59 | |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,453
|
Quote:
Z80 code I've seen has a lot of stack pops, which is difficult to find and crashes. There's also the play with H and L separately, then together, (with sometimes memory aligned on $100). Plus the infamous half carry flag (that I never saw in action yet). Depends on the programming style I guess. But 6502 is clearly more difficult to transcode into some readable code. |
|
![]() |
![]() |
#60 |
PascalDe73
Join Date: Apr 2019
Location: Charleroi Belgium
Age: 51
Posts: 238
|
Hi,
Here My GlowIcon too (Workbench 3.5 & More) The arcade Flyer too. @JOTD Nice Game Port... Congratulations Best Regards, Pascal Last edited by PascalDe73; 16 December 2023 at 00:45. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[WIP] Frogger conversion | JoeJoe | project.Amiga Game Factory | 99 | 24 December 2023 13:11 |
[WIP] Super Bagman conversion | jotd | project.Amiga Game Factory | 26 | 24 November 2023 08:07 |
[WIP] Galaxian conversion | jotd | project.Amiga Game Factory | 107 | 16 July 2023 19:37 |
[WIP] Pengo conversion | jotd | project.Amiga Game Factory | 95 | 14 July 2023 17:16 |
Ms Pacman conversion WIP | jotd | project.Amiga Game Factory | 86 | 22 November 2021 21:45 |
|
|