Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
Acmlm's Board - I2 Archive - - Posts by MathOnNapkins
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
User Post
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2182/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 10-22-05 03:17 AM, in NESToy Link
In windows, go to the folder that NESToy.exe is in and press the key combination Windows-r. It should bring up the run dialog and in that dialog type the letters cmd. Hit enter. That will bring up the old DOS command line. By doing it in windows from that folder, you should already be there in DOS.

Next, type NESToy.exe and hit return.

The command line should show you a usage list. I don't know what NESToy is used for, but more than likely the usage will look like this: NESToy.exe myromname.nes
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2183/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 10-22-05 03:51 AM, in 65816 ASM not making any sens to me... Link
Ok, i'm not sure what doc you used to find $4306 as the base of the size of the transfer, but it's actually $4305. $4305 is the low byte, -6 is the high byte. I just edited that in the rom to $4305 and now I get a big blank Red Screen. So yeah it worked.

I'll post other corrections as I see them.

edit: got it to display something, but I think I forgot to make it an incrementing transfer...

edit2: noticed that at the beginning of the rom you are trying to do LDA #$0000 and then TCD, but the assembler just picked it up as A9 00 5B which means you havent' actually done anything there... Not like it matters, it's at $0000 by default. It must be a quirk of WLA DX that is has no idea how to handle that code just by itself. What you should do is tag a .W on to it.


(edited by MathOnNapkins on 10-21-05 07:07 PM)
(edited by MathOnNapkins on 10-21-05 07:42 PM)
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2184/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 10-22-05 05:02 AM, in 65816 ASM not making any sens to me... Link
.db $54
.db $02
.db $7F ; wtf, is this a mvn instruction? <-- my comment

Just for humor.

edit: Hm... well it appeared to me that your MVN instruction was incorrectly formatted. The source bank actually comes last in the rom (but first in an assembler). So it should be

.db $54
.db $7F
.db $02

or MVN $02, $7F.

However, strangely this seems to cause your palette DMA transfer to not trigger . Weird. I need to look and see where it triggers in the rom to verify that the code is executing. I don't know if it was something I did, or something you did, but your code that does LDA #$81 : STA $4200... well after I changed this code around I think the MVN switched the data bank to $7F. Hence it was writing to $7F:4200 and not $00:4200 O_o. I wrote a little hook to fix that. But still your palette stuff doesn't show up now... very weird.


(edited by MathOnNapkins on 10-21-05 08:54 PM)
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2185/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 10-22-05 06:52 AM, in 65816 ASM not making any sens to me... Link
It would appear that the "display" in GSD is faulty. I checked breakpoints on writes to $7F:1000 and in your original no breakpoint occurs. I swapped the bytes and the breakpoint occurs. But now I'm encountering some issues with the Data Bank being $7F in several places. Apparently the Block Move instructions manipulate those transparently. Why is this a problem? Well if you're writing to the 128K of WRAM obviously the PPU Registers aren't being written to, it's a seperate memory map. So i'm finding a way to make it so right after the MVN we'll get LDA #$00 : PHA : PLB.

In your original... this was far from a problem b/c the Data bank remained $02, which mirrors with all other non WRAM banks, ie. $00 through $6F. That is an approximate range, so don't take me too literally. $70 is usually SRAM of course, Not sure what happens between $71 and $7D

edit: one slight note that is rather unimporant, but when you do block moves, you set A to one minus the amount of bytes you want to move. So you should change it to LDA #$07FF.


(edited by MathOnNapkins on 10-21-05 09:53 PM)
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2186/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 10-22-05 09:03 AM, in 65816 ASM not making any sens to me... Link
I'm doing straight rom editing b/c I don't like working with WLA DX. I prefer to use Xkas, myself. edit2: plus, would you have noticed the errors I noticed by looking at the ASM files? Most likely not. To truly know if the ASM will work correctly you must have a superb understanding of how your assembler will behave in any situation.

I noticed some of the code was from Neviksti, and possibly other sources, so I'm taking that into account, though just b/c it's third party doesn't mean you shouldn't take the time to look at it and make sure it works. IMO, it does a lot of unnecessary initialization.

Another example of faulty TCD commands (don't know if this is you or not), is LDA #$00 : TCD. Even though the M flag is set, the TCD instruction sends the whole 16 bit C accumulator (i.e. A and B). So I noticed that quite often this is setting the direct page to $FF00. Not very safe . If you wanted to stay in 8 bit mode, I'd do:

LDA #$00
XBA
LDA #$00
TCD

Again, still trying to figure out what ails this. I looked at the rom in TLP and tried to see what sort of graphics you wanted displayed.

As far as my previous comment about doing $7F:4200, that meant that the NMI interrupt was not being reactivated, and hence your rom was hanging on the $CB, or WAI instruction.

I'll mention again that I don't think your tile map or graphics are being blittled to the right locations. BG1 is the only one set to be displayed, but its VRAM addresses are:

BA: $0800, TA: $1000

I don't know if you fixed that in your latest release b/c I haven't downloaded it yet.

Hehhhhhh.... OH SHI-

I figured out why the hooks I was doing to change the Data Bank Register back to $00 were failing. silly me. I forgot you were doing all the phb plb shit at the end and beginning of routines. And... btw if you're going to do stuff like a lot that you might as well make it a macro.

Edit3: Well I thought I had everything working... but GSD is telling me that every DMA transfer except for the one that uploads the graphics is working. The tile map is perfectly fine in memory. And i even had it displaying something resembling a logo for a while. But I had two copies going at the same time and didn't notice so I think I kept fighting against myself to keep all the changes I was making. I'm too fed up with it today so good luck on your own. What it said that struck me as being odd was that all the DMA transfers except for the ones using $2180, the Palette upload, and the graphics uploads, were using "write mode 1". The exceptions I mentioned were using write mode 0. At this time I can't figure out what that means in terms of the PPU registers. It even started telling me that I was reading from CGRAM instead of writing. Again, a symptom of I probably had two hex editor windows open simultaneously and intermittently.


(edited by MathOnNapkins on 10-22-05 12:19 AM)
(edited by MathOnNapkins on 10-22-05 01:10 AM)
(edited by MathOnNapkins on 10-22-05 02:52 AM)
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2187/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 10-22-05 01:12 PM, in Turbo Pascal.exe Link
more like... in every single case. B/c if you search this page for writein you'll see about 10 instances of it.
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2188/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 10-22-05 03:12 PM, in Need help with 3 Super Metriod patches Link
Since Snes9x and Zsnes patch on the fly, don't bother using a utility. Just put the .ips file in the same folder as the rom you want to play. Then change it so the name of the rom file matches the name of the ips file like so:

if the name of the rom is metroid3.smc, then do this

metroid3.smc
metroid3.ips

Then when you load up the game it should auto patch correctly without having to modify your rom file. And as I recall it won't matter if your original rom has a header.
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 2189/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 11-02-05 11:58 AM, in An explanation of rom banks? Link
Developing a cutscene might be a lot of work unless you have a very clear notion of what you want to do, and how you plan to accomplish it. Rather than clear the joypad info every frame, you ought to find a suitable "start" of the gameloop, then hopefully you have an unused memory address where you can keep track of whether you are in cutscene mode or not. from there, you branch based on that variable, and you'll have to write a different game loop, utilizing existing routines that you want from the gameloop, and possibly having the need to create your own. Scripted stuff that I've seen basically uses a jump table. So you have a variable that keeps track of what stage the cutscene is in.

How you divide that up is up to you, b/c you'll be coding it. Doing something like this is what I'm talking about:

SEP #$30

LDA cutscene_flag

BNE cutscene_activated

RTS/RTL ; whatever you need here

cutscene_activated:

LDA cutscene_index
ASL A
TAX

JSR cutscene_jumptable, X

RTS/RTL

cutscene_jumptable:

dw stageone, stagetwo, stagethree, etc. etc.

stageone:

; insert code

stage two:

; insert code

stage three

; insert code



Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
Acmlm's Board - I2 Archive - - Posts by MathOnNapkins


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.020 seconds.